如何以编程方式使用TestNG运行Selenium Java测试?

8

我正在使用Java编写的Selenium RC,并使用TestNG作为测试框架。我的IDE是Eclipse。我想非常容易地从自己的程序中调用TestNG。我该怎么做?

3个回答

8

我的Java代码运行良好:

@Test
public void testTestNGProgramatically(){
TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
testng.setTestClasses(new Class[] {LoginAuthentication.class, GmailSigninSignout.class});
testng.addListener(tla);
testng.run(); 
}

您可以通过访问以下网址获取详细解释:

http://testng.org/doc/documentation-main.html#running-testng-programmatically


在我的上述代码中:第"TestNG testng = new TestNG();"行中的TestNG已经被弃用。有什么替代TestNG类的方法吗? - Ripon Al Wasim
2
使用 org.testng.TestNG,而不是com.beust.TestNG(你可能正在导入的那一个)。 - Cedric Beust
@CedricBeust:非常感谢。是的,我已经导入了 org.testng.TestNG 而不是 com.beust.TestNG,现在可以了。 - Ripon Al Wasim
以上代码会并行执行多个类,如何避免并行执行? - sameer joshi

6

我的以下代码运行得很好: TestListenerAdapter tla = new TestListenerAdapter(); TestNG testng = new TestNG(); testng.setTestClasses(new Class[] {LoginAuthentication.class}); testng.addListener(tla); testng.run(); com.beust.testng.TestNG; TestNG已经过时了。有没有其他替代的方法? - Ripon Al Wasim
请使用org.testng.TestNG而不是com.beust.TestNG。 - Ripon Al Wasim
你也可以关注这个博客:http://dharshanaw.blogspot.com/2012/10/how-to-execute-testng-tests.html - Dharshana
我尝试了这段代码片段,但在运行时出现了NoClassDefFoundError错误,除了创建测试类和测试方法之外,我还需要做些什么吗? - user2062360

0

请查看org.testng.remote.RemoteTestNG,但这需要您编写一个XML套件来运行测试,例如:

<suite name="Default suite">
  <test verbose="2" name="Default test">
    <classes>
      <class name="com...service.UserServiceImplTest"/>
    </classes>
  </test>
</suite>

另一个入口可能是new org.testng.internal.TestMethodWorker(...).run(),但您需要查看代码以确定需要设置的构造函数参数。

也许根据您的需求,还有其他更方便的入口点可用;我建议在调试模式下启动一些测试,在测试中设置断点并向下跟踪堆栈。


是的,这就是XML文件的内容。因此,可以使用Eclipse或Ant运行build.xml文件。 - Ripon Al Wasim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接