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

时间:2011-03-28 10:57:49

标签: java eclipse automated-tests selenium-rc testng

我使用Selenium RC和Java一起使用TestNG作为测试框架。我正在使用Eclipse作为IDE。我想很容易地从我自己的程序中调用TestNG。我怎么能这样做?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:6)

TheStijn给出了一些好的方向,虽然TestMethodWorker()是内部的,所以你不应该使用它。

基于这个问题,我甚至不确定原始海报是否试图在单独的流程中启动TestNG,因此API文档可能正是您所寻找的:

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

答案 2 :(得分: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>

另一个入口点可能是新的org.testng.internal.TestMethodWorker(...)。run()但你必须查看代码以确定你需要设置的构造函数args。

根据您的需要,也许还有其他更方便的切入点;我建议在调试模式下启动一些测试,在测试中放置一个断点并向下移动。