如何从java main方法调用testng.xml?

时间:2014-04-24 15:09:53

标签: selenium-webdriver

我创建了testng.xml文件。 有没有办法从java main方法运行这个文件?

像 -

Class test {
  public static void main ( String [ ] args) 
  {
    Run(testng.xml);
  }
}

5 个答案:

答案 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限制为仅测试

删除那个