我创建了testng.xml文件。 有没有办法从java main方法运行这个文件?
像 -
Class test {
public static void main ( String [ ] args)
{
Run(testng.xml);
}
}
答案 0 :(得分:15)
你可以直接从命令行运行testng,可能在它上面制作一个bat文件或使用jenkins来触发它。请参考这里
或
如果你想在main中,那么你可以尝试
TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
List<String> suites = Lists.newArrayList();
suites.add("c:/tests/testng1.xml");//path to xml..
suites.add("c:/tests/testng2.xml");
testng.setTestSuites(suites);
testng.run();
答案 1 :(得分:4)
请尝试以下代码并确保在jar清单文件中添加了testNG jar。
public static void main(String[] args)
{
org.testng.TestNG.main(args);
}
现在您可以将所有参数传递给jar,这些参数与testNG jar文件相同。
e.g。
java -jar yourjar.jar testng.xml
或
java -jar yourjar.jar -testclass org.test.xyz.java
答案 2 :(得分:2)
这项工作对我而言。更多详情here。
// Create object of TestNG Class
TestNG runner=new TestNG();
// Create a list of String
List<String> suitefiles=new ArrayList<String>();
// Add xml file which you have to execute
suitefiles.add("C:\\Automation Test\\Git\\vne_automation\\testng.xml");
// now set xml file for execution
runner.setTestSuites(suitefiles);
// finally execute the runner using run method
runner.run();
希望这有帮助!
答案 3 :(得分:0)
我没有收到任何错误,XML路径也是正确的。但它只是以失败的测试用例结束执行。它没有打开firefox浏览器。 我在类中使用了testng注释(即@Before Suite,@ Test,@ group等),而在eclipse中使用Testng Suite成功执行。
<!-- suite name="Example" parallel="methods" thread-count="2" parallel="false" preserve-order="true"> -->
<suite name="Example Donate System" verbose='1'>
<test name="Agency" >
<packages>
<package name="com.Donatesystem.AgencyController" />
</packages>
</test>
</suite>
答案 4 :(得分:0)
上面的所有答案都像魅力一样,但有一个限制
它会运行,除非你删除pom.xml中的scope
标记
在pom.xml中,testNg的maven依赖性就在那里 会有一个范围标记将我们的jar限制为仅测试
删除那个