Перейти к содержимому

Фотография

Остановить TestNG после прохождения тестов


  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 Rommy1204

Rommy1204

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Печерский Роман

Отправлено 17 апреля 2013 - 12:54

Добрый день! Столкнулся со следующей проблемой:
Тесты написаны на фреймворке 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);
  • 0

#2 Rommy1204

Rommy1204

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Печерский Роман

Отправлено 18 апреля 2013 - 11:54

Нашел решение, оказалось что многопоточность явно не убивается, есть 3 варианта решения:
1. System.exit(0);
2. Убить процесс (более мягкий способ)
3. Найти специальные вещи для многопоточного завершения процессов вебдрайвера (в процессе)
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных