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

如何以编程方式使用TestNG运行Selenium Java测试?,java,eclipse,automated-tests,selenium-rc,testng,Java,Eclipse,Automated Tests,Selenium Rc,Testng,我正在使用Selenium RC和Java,使用TestNG作为测试框架。我使用Eclipse作为IDE。我想很容易地从我自己的程序中调用TestNG。我该怎么做呢?看看org.testng.remote.RemoteTestNG,这将需要您为测试编写一个xml套件,如: <suite name="Default suite"> <test verbose="2" name="Default test"> <classes> <c

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

看看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(),但您必须查看代码以确定需要设置的构造函数参数


根据您的需要,可能还有其他更方便的入口点;我建议在调试模式下启动一些测试,在测试中设置一个断点,然后继续测试

尽管TestMethodWorker()是内部的,所以您不应该使用它,但它给出了一些很好的说明

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


我的以下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(); 
}
您可以通过访问以下URL获得详细说明:


是,这是xml文件的内容。因此,build.xml文件是通过使用eclipse或AntMy运行的。下面的代码工作得很好:TestListenerAdapter tla=new TestListenerAdapter();TestNG TestNG=新的TestNG();setTestClasses(新类[]{LoginAuthentication.Class});testng.addListener(tla);testng.run();com.beust.testng.testng;TestNG已被弃用。有其他方法吗?使用org.testng.testng而不是com.beust.testng你也可以关注这个博客我尝试了这个代码段,但是在尝试运行它时遇到了NoClassDefFoundError,除了在其中包含测试类和测试方法之外,我还需要做什么吗?在我上面的代码中:testng在“testng testng=new testng()行中被弃用;" . TestNG类的替代方案是什么?使用
org.TestNG.TestNG
,而不是
com.beust.TestNG
(您可能正在导入的那个)。@CedricBeust:非常感谢。是的,我已经导入了org.testng.testng而不是com.beust.testng,好了,上面的代码并行执行多个类,如何避免[并行执行?