从Ant运行参数化的Junit测试会抛出IllegalArgumentException

时间:2015-05-12 13:05:44

标签: ant junit

我想使用Ant目标从命令行在我们的项目中运行JUnit测试。到目前为止,我们从Eclipse手动运行测试,没有任何问题使用Eclipse中的嵌入式JUnit。 在最终弄清楚我现在获得的类路径如何失败之后测试所有使用JUnit 4.11中的参数化运行器的类。 在运行测试目标(蚂蚁测试)时,唯一的输出是" FAILED"在Testclass的名称之后,即使使用选项-v。 生成测试报告显示以下异常:

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,请告诉我。

2015年5月15日更新:这是我们的JUnit Test类失败的示例部分。 @Parameters部分只包含一个在这种情况下非常无用的条目,但是当从ant运行时,这个类仍然失败。

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

@Parameter
public String RULES_FILE_NAME;

我们的Test类注释如下:

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

1 个答案:

答案 0 :(得分:0)

由于测试类中缺少构造函数而抛出异常。 似乎在使用参数化运行器时,您需要指定一个构造函数,其参数与参数一样多。 出于某种原因,这可以在Eclipse中使用,而无需指定构造函数。