TestNG测试通过,但在通过Ant运行时失败,即使构建成功
我有一个TestNG测试,它在Eclipse中作为TestNG套件运行时可以正常工作,但在通过TestNG Ant任务(也通过Eclipse)运行时失败。当我通过命令行运行Ant时,同样的测试也失败了。生成成功,但测试失败,并显示以下消息: org.testng.TestNGException: 参数'主页。标题'方法登录时@Test需要,但尚未标记为@Optional或定义 该参数在我的TestNG.xml中定义正确,正如我所提到的,如果我通过“以TestNG套件的形式运行”,则相同的测试通过TestNG测试通过,但在通过Ant运行时失败,即使构建成功,ant,testng,Ant,Testng,我有一个TestNG测试,它在Eclipse中作为TestNG套件运行时可以正常工作,但在通过TestNG Ant任务(也通过Eclipse)运行时失败。当我通过命令行运行Ant时,同样的测试也失败了。生成成功,但测试失败,并显示以下消息: org.testng.TestNGException: 参数'主页。标题'方法登录时@Test需要,但尚未标记为@Optional或定义 该参数在我的TestNG.xml中定义正确,正如我所提到的,如果我通过“以TestNG套件的形式运行
提前谢谢!我也希望能够帮助别人 看起来您为测试定义了一个参数,但没有为其指定值
@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>
另外,构建可能通过的原因是您是否告诉Ant在测试失败时使构建失败。在这种情况下,如果生成已编译,但测试失败,则生成仍将报告“成功”结果:
haltonfailure
属性的默认值为“false”
有关测试方法和Ant目标的更多信息以及如何使用,请参阅。发布测试方法和Ant目标的示例将非常有帮助。是的,对不起。我当时正打算这么做,然后就分心了。在build.xml中指定jvmarg就成功了。我已经在测试方法上使用了参数注释,并在testng.xml中指定了值。有趣的是,这对于TestNG本身来说很好,但是Ant仍然希望我提供jvmarg。谢谢你的信息!奇怪。通常有
@Parameters
注释并在testng.xml中指定参数就足够了。您是否也将testng.xml传递给Ant target以在“xmlfileset”元素中运行测试?是的,现在它可以正常工作了。再次感谢。。。花了几天时间将框架连接起来,我甚至还没有编写任何测试!
<testng>
<jvmarg value="-DmyParameter=myValue" />
<!-- ... -->
</testng>
@Test
@Parameters({"myParameter"})
public void myTest(@Optional("myValue") String myParameter){
}
<testng haltonfailure="true">
<!-- ... -->
</testng>