Я создал набор тестов, используя TestNG и Selenium в Java для своей работы. Тесты должны выполняться на разных URL-адресах, поэтому я создал многопоточные. Набор тестов абсолютно идеально работает на моей локальной машине через Eclipse, однако он не работает должным образом с помощью Jenkins.
Каждый класс теста получает URL-адрес и должен запускаться в своем собственном веб-драйвере на своем собственный поток. В Jenkins, однако, открыт только 1 драйвер, и после завершения первого тестового класса все остальные тестовые классы завершаются сбоем из-за нулевого идентификатора сеанса драйвера (что, как я полагаю, происходит от других тестовых классов, пытающихся использовать тот же драйвер первым тестовый класс использовался и впоследствии был закрыт).
Я зашел так далеко, что настроил свой проект в Eclipse на сервере, на котором работает Jenkins, и он также отлично работает там. В моей конфигурации должно быть что-то не так.
Информация о конфигурации
- TestNG Версия:
7.0.0
- Root POM:
pom.xml
- Цели и опции:
clean test -DsuiteFile=dummy_testng.xml
Исходный код этого задания Jenkins находится в ветке репозитория GitHub моей компании.
Файлы
dummy_testng.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="My Suite" verbose="2" parallel="instances" thread-count="2" group-by-instances="true">
<listeners>
<listener class-name="com.wp.listener.ExtentReporterNG" />
<listener class-name="com.wp.listener.TestListener" />
</listeners>
<test name="Footer Tests">
<classes>
<class name="com.GA.footer.FooterFactory"/>
</classes>
</test>
</suite>
Зависимость TestNG в pom.xml
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.0.0</version>
<scope>test</scope>
</dependency>
Место для запуска
Сообщение на рисунке ниже появляется в выводе консоли от Jenkins
Понятно, что атрибут parallel
где-то не распознается.
Есть идеи, что я могу попробовать?