2015-05-12 104 views
0

我想從命令行使用Ant目標在我們的項目中運行JUnit測試。到目前爲止,我們使用Eclipse中的嵌入式JUnit手動從Eclipse中手動運行測試,沒有任何問題。 終於找出了我現在得到的類路徑設置失敗的原因。使用JUnit 4.11中的Parameterized Runner的所有類的測試。 運行測試目標(ant測試)時,在Testclass名稱後面的唯一輸出是「FAILED」,即使使用選項-v也是如此。 生成testreports顯示以下異常:從Ant中運行參數化的Junit測試引發IllegalArgumentException

java.lang.IllegalArgumentException: wrong number of arguments 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 

這是什麼意思? 版本是: - JDK 1.6 - 螞蟻1.9.3 - JUnit的4.11

我的build.xml長超過400行,所以我不知道這是否有道理張貼在這裏。讓我知道你是否需要build.xml的一部分。

更新13.05.2015:以下是我們的JUnit測試類失敗的示例部分。 @Parameters部分僅包含一個在這種情況下非常無用的條目,但從螞蟻運行時,該類仍然失敗。

@Parameters 
public static Iterable<String[]> testData() { 
return Arrays 
    .asList(new String[][] { { "a-rules-filename" } }); 
} 

@Parameter 
public String RULES_FILE_NAME; 

我們的測試類註釋是這樣的:

@FixMethodOrder(MethodSorters.NAME_ASCENDING) 
@RunWith(Parameterized.class) 
public class OurRulesTest { 
+0

您能否提供您測試的代碼('@ Parameters'方法和構造函數)。 –

+0

用一些代碼更新了原始問題。 – phivo

+0

好的,它看起來好像我必須添加一個構造函數到我的測試類中,以便Parameterized Runner能夠從ant工作。 – phivo

回答

0

發生異常時,由於在測試類缺少構造函數。 看來,當使用Parameterized Runner時,您需要指定一個具有與參數一樣多的參數的構造函數。 由於某些原因,這可以在Eclipse中工作而無需指定構造函數。

相關問題