简体   繁体   中英

How to run Selenium Java tests with TestNG programmatically?

I am using Selenium RC with Java using TestNG as Test Framework. I'm using Eclipse as IDE. I want to invoke TestNG from my own program very easily. How can I do that?

My following code in java works nicely:

@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(); 
}

You can get the details explanation by visiting the following URL:

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

TheStijn gives a few good directions, although TestMethodWorker() is internal so you shouldn't use it.

Based on the question, I'm not even sure the original poster is trying to launch TestNG in a separate process, so the API documentation might be what you're looking for:

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

Have a look at org.testng.remote.RemoteTestNG, this will however require you to write an xml suite for your tests like:

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

Another entry point might be new org.testng.internal.TestMethodWorker(...).run() but you'll have to look at the code to determine the constructor args you need to set.

Perhaps other, more convenient entry points are available depending on your needs; I suggest to launch some test in debug mode, put a breakpoint in your test and go down the stack.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM