В нашем проекте есть набор тестов Selenium, которые мы в настоящее время упаковываем в банку с намерением Дженкинса запустить тесты в качестве этапа сборки. Мы устанавливаем банку в локальный репозиторий клиентской виртуальной машины, настроенной так, чтобы Selenium указывал на Jenkins в качестве хоста. Проблема, с которой мы сталкиваемся, заключается в том, чтобы найти способ заставить Maven/SureFire найти тесты Selenium/TestNG в установленном нами банке. У нас есть pom со всеми зависимостями, которые требуются для тестов на клиенте, включая саму банку тестов, но когда мы запускаем «mvn test», тесты не найдены. Ясно, что мы что-то упускаем здесь, есть идеи? Спасибо.
Использование Surefire для выполнения тестов TestNG/Selenium в банке
Ответы (2)
surefire по умолчанию ищет имена файлов, такие как Test*.java , *Test.java , *TestCase.java и выполняет их. если ваш тест не соответствует ни одному из этих шаблонов, вы должны включить их явно. см. здесь
@Test
аннотаций. Surefire нет; он использует менее гибкий метод JUnit.
- person Bob Dalgleish; 13.08.2014
Создайте основной метод, вызывающий основной метод testNG, и передайте основные методы args[] основному методу testNG. Теперь у вашей тестовой банки будет основной метод для запуска тестовых случаев по вашему желанию. Вы можете передать те же параметры, что и TestNG, в свой файл jar, например файл testng.xml или -testClass classapath и т. д., см. пример ниже.
public static void main(String args[])
{
org.testng.TestNG.main(arg);
}
теперь вам просто нужно создать xml-файл тестовых классов, а в jenkins использовать пакетную команду Windows для вызова вашего jar-файла на удаленной машине с необходимыми параметрами testNG.
testng.xml
со списком ваших тестов. Surefire наивен и недостаточен для распознавания тестов. Пусть TestNG действительно найдет их. - person Bob Dalgleish   schedule 06.08.2014