Использование Surefire для выполнения тестов TestNG/Selenium в банке

В нашем проекте есть набор тестов Selenium, которые мы в настоящее время упаковываем в банку с намерением Дженкинса запустить тесты в качестве этапа сборки. Мы устанавливаем банку в локальный репозиторий клиентской виртуальной машины, настроенной так, чтобы Selenium указывал на Jenkins в качестве хоста. Проблема, с которой мы сталкиваемся, заключается в том, чтобы найти способ заставить Maven/SureFire найти тесты Selenium/TestNG в установленном нами банке. У нас есть pom со всеми зависимостями, которые требуются для тестов на клиенте, включая саму банку тестов, но когда мы запускаем «mvn test», тесты не найдены. Ясно, что мы что-то упускаем здесь, есть идеи? Спасибо.


person mreynolds0404    schedule 06.08.2014    source источник
comment
Было бы намного лучше создать файл testng.xml со списком ваших тестов. Surefire наивен и недостаточен для распознавания тестов. Пусть TestNG действительно найдет их.   -  person Bob Dalgleish    schedule 06.08.2014


Ответы (2)


surefire по умолчанию ищет имена файлов, такие как Test*.java , *Test.java , *TestCase.java и выполняет их. если ваш тест не соответствует ни одному из этих шаблонов, вы должны включить их явно. см. здесь

person M.Faizal    schedule 06.08.2014
comment
К сожалению, TestNG не смог отсканировать исходный файл .jar. Хм. Может быть, есть способ. - person djangofan; 06.08.2014
comment
TestNG сканирует все файлы в банке в поисках @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.

person Himanshu    schedule 13.08.2014