Добрый день! Столкнулся со следующей проблемой:
Тесты написаны на фреймворке TestNG и запускаются через xml параллельно в двух браузерах.
Из IDE (Eclispe) все работает отлично.
Но возникла необходимость передать тесты в другую систему для CI
для этого я добавил в класс с тестами метод main (иначе runuble jar не создать)
и запускаю в нем программно testng.xml следующим образом:
public static void main(String[] args) throws Exception {
Dataxml.DataFromXml();
TestNG testNG = new TestNG(true);
//Парсим xml файл, делаем запуск тестов через suite/xml
Parser parser = new Parser("Data/testng.xml");
List<XmlSuite> suites = parser.parseToList();
testNG.setXmlSuites(suites);
//Добавляем листенер к тестам
MyListener myListener = new MyListener();
testNG.addListener(myListener);
//запускаем тесты
testNG.run();
}
тесты проходят успешно, все казалось бы также. Но после прохождения тестов, запускаемых из xml'ки работа testNG прекращается
А после прохождения тестов, запускаемых main методом - нет
Тесты проходят, браузеры закрываются, отчет отсылается, в консоль выводится стандартный результат Suite, но процесс не останавливается (сколько не жди)
Как быть? Никто не сталкивался?
Временное решение - System.exit(0);
Остановить TestNG после прохождения тестов
Автор Rommy1204, 17 апр 2013 12:54
В теме одно сообщение
#1
Отправлено 17 апреля 2013 - 12:54
#2
Отправлено 18 апреля 2013 - 11:54
Нашел решение, оказалось что многопоточность явно не убивается, есть 3 варианта решения:
1. System.exit(0);
2. Убить процесс (более мягкий способ)
3. Найти специальные вещи для многопоточного завершения процессов вебдрайвера (в процессе)
1. System.exit(0);
2. Убить процесс (более мягкий способ)
3. Найти специальные вещи для многопоточного завершения процессов вебдрайвера (в процессе)
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных