看起来您为测试定义了一个参数,但没有为它指定一个值。
@Test
public void myTest(String myParameter){
}
有几种方法可以解决这个问题。一种是指定参数注释并在 testng.xml 或通过 jvm arg 中传递参数:
@Test
@Parameters({"myParameter"})
public void myTest(String myParameter){
}
testng.xml 文件:
<suite>
<test>
<parameter name="myParameter" value="myValue" />
<classes>
<class name="org.example.MyTestClass" />
</classes>
</test>
</suite>
或在 build.xml 文件中指定 jvmarg 属性:
<testng>
<jvmarg value="-DmyParameter=myValue" />
<!-- ... -->
</testng>
TestNG 建议的另一种方法是使用@Optional 注释参数:
@Test
@Parameters({"myParameter"})
public void myTest(@Optional("myValue") String myParameter){
}
另外要注意的是,您的构建可能通过的原因是您是否告诉 Ant 在测试失败时使构建失败。在这种情况下,如果构建编译,但有一个测试失败,构建仍然会报告“成功”结果:
<testng haltonfailure="true">
<!-- ... -->
</testng>
属性的默认值为haltonfailure
“false”。
有关参数以及如何将TestNG 与 Ant一起使用的更多信息,请参阅TestNG 文档。