Ripon Al Wasim
Ripon Al Wasim

Reputation: 37746

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?

Upvotes: 8

Views: 15119

Answers (3)

Ripon Al Wasim
Ripon Al Wasim

Reputation: 37746

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

Upvotes: 8

Cedric Beust
Cedric Beust

Reputation: 15608

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

Upvotes: 6

Stijn Geukens
Stijn Geukens

Reputation: 15628

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.

Upvotes: 0

Related Questions