Как программно запускать тесты Selenium Java с TestNG? - PullRequest
8 голосов
/ 28 марта 2011

Я использую Selenium RC с Java, используя TestNG в качестве Test Framework.Я использую Eclipse в качестве IDE.Я хочу очень легко вызвать TestNG из моей собственной программы.Как я могу это сделать?

Ответы [ 3 ]

8 голосов
/ 30 августа 2012

Мой следующий код в 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:

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

6 голосов
/ 28 марта 2011

TheStijn дает несколько хороших указаний, хотя TestMethodWorker () является внутренним, поэтому вы не должны его использовать.

Исходя из вопроса, я даже не уверен, что оригинальный постер пытается запустить TestNG в отдельном процессе, поэтому документация по API может быть тем, что вы ищете:

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

0 голосов
/ 28 марта 2011

Взгляните на 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 (), но вам придется взглянуть на код, чтобы определить аргументы конструктора, которые нужно установить.

Возможно, другие, более удобные точки входа доступны в зависимости от ваших потребностей; Я предлагаю запустить некоторый тест в режиме отладки, установить точку останова в вашем тесте и перейти в стек.

...