Selenium webdriver 如何从java主方法调用testng.xml?

Selenium webdriver 如何从java主方法调用testng.xml?,selenium-webdriver,Selenium Webdriver,我已经创建了testng.xml文件。 有没有办法从java主方法运行这个文件 差不多- Class test { public static void main ( String [ ] args) { Run(testng.xml); } } 请尝试下面的代码,并确保在jar清单文件中添加了testNG jar public static void main(String[] args) { org.testng.TestNG.main(args); } 现

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

差不多-

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

请尝试下面的代码,并确保在jar清单文件中添加了testNG jar

public static void main(String[] args)
{
    org.testng.TestNG.main(args);
}
现在,您可以将所有参数传递到您的jar,这些参数与testngjar文件相同

e、 g

java-jaryourjar.jartestng.xml


java-jar yourjar.jar-testclass org.test.xyz.java

您可以直接从命令行运行testng,可能在其上创建一个bat文件或使用jenkins触发它。参考这里

如果你想把它放在主要位置,那么你可以试试

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();
TestListenerAdapter tla=newtestlisteneradapter();
TestNG TestNG=新的TestNG();
List suites=Lists.newArrayList();
添加(“c:/tests/testng1.xml”)//xml的路径。。
添加(“c:/tests/testng2.xml”);
testng.setTestSuites(套房);
testng.run();

我没有收到任何错误,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>

这是我的工作。更多细节

//创建TestNG类的对象
TestNG runner=新的TestNG();
//创建一个字符串列表
List suitefiles=new ArrayList();
//添加您必须执行的xml文件
添加(“C:\\Automation Test\\Git\\vne\u Automation\\testng.xml”);
//现在设置要执行的xml文件
长跑者套房(套房);
//最后使用run方法执行runner
runner.run();

希望这有帮助

以上所有答案都很有魅力,但有一个限制是 它将运行,直到您删除pom.xml中的
scope
标记

在pom.xml中,testNg和其中都有maven依赖性 将有一个范围标签,它将我们的jar限制为只进行测试


只需删除这个

您能解释一下运行testng.xml想要实现什么吗?在eclipse中,要运行测试,我要运行testng.xml,方法是右键单击它,然后选择选项run as testng suite。我想做一个罐子,并在一定的时间间隔后运行它。这就是为什么尝试从main methodExported runnable jar文件和testng.xml调用testng.xml&从CMD提示符尝试,总是得到找不到的xml。但当我显式使用with类名时,我可以从CMD运行测试。你能帮我解决这个问题吗?[注意:没有使用ANT,MAVEN]你好,niharika,我认为在第一种方法中缺少URL。您打算提供在jar文件上创建bat文件的URL,但并没有插入任何链接。我需要那个解决方案。你能提供那个链接吗?@learner
// 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();