Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TestNG测试通过,但在通过Ant运行时失败,即使构建成功_Ant_Testng - Fatal编程技术网

TestNG测试通过,但在通过Ant运行时失败,即使构建成功

TestNG测试通过,但在通过Ant运行时失败,即使构建成功,ant,testng,Ant,Testng,我有一个TestNG测试,它在Eclipse中作为TestNG套件运行时可以正常工作,但在通过TestNG Ant任务(也通过Eclipse)运行时失败。当我通过命令行运行Ant时,同样的测试也失败了。生成成功,但测试失败,并显示以下消息: org.testng.TestNGException: 参数'主页。标题'方法登录时@Test需要,但尚未标记为@Optional或定义 该参数在我的TestNG.xml中定义正确,正如我所提到的,如果我通过“以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>