我正在使用Java编写的Selenium RC,并使用TestNG作为测试框架。我的IDE是Eclipse。我想非常容易地从自己的程序中调用TestNG。我该怎么做?
我正在使用Java编写的Selenium RC,并使用TestNG作为测试框架。我的IDE是Eclipse。我想非常容易地从自己的程序中调用TestNG。我该怎么做?
我的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
TheStijn提供了一些不错的指导,但是TestMethodWorker()是内部方法,所以您不应该使用它。
根据问题,我甚至不确定原帖作者是否试图在单独的进程中启动TestNG,因此您可能需要查看API文档:
http://testng.org/doc/documentation-main.html#running-testng-programmatically
请查看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(),但您需要查看代码以确定需要设置的构造函数参数。
也许根据您的需求,还有其他更方便的入口点可用;我建议在调试模式下启动一些测试,在测试中设置断点并向下跟踪堆栈。
org.testng.TestNG
,而不是com.beust.TestNG
(你可能正在导入的那一个)。 - Cedric Beust