В моей автоматизации тестирования тесты выполняются на двух мобильных устройствах параллельно с помощью testNG feamework. Методы @BeforeClass и @AfterClass находятся в базовом (супер) классе, который наследуют все остальные тестовые классы. Метод BeforeClass инициализирует сеанс драйвера, а метод AfterClass завершает сеанс.
Проблема в том, что @AfterClass не выполняется. Из-за этого сеанс драйвера не завершается, и из-за этого последующий вызов BeforeClass завершается неудачно. Это приводит к выполнению только первого теста в каждом классе - остальные нет.
Мне интересно, сталкивался ли кто-нибудь с этим... и какова причина/устранение!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Parallel Mobile Tests" parallel="tests" thread-count="2"
preserve-order="true" configfailurepolicy="continue">
<parameter name="browserTypes" value="Mobile OS" />
<listeners>
<listener class-name="my.listeners.TestListener" />
<listener class-name="my.listeners.CustomReportListener" />
</listeners>
<test verbose="2" name="IPHONE_6SPLUS : Parallel Tests">
<parameter name="device" value="IPHONE_6SPLUS" />
<parameter name="deviceOS" value="iOS" />
<classes>
<!-- ALL INSTALL TESTS -->
<class name="my.tests.Install" />
<class name="my.tests.Class1_tests" />
<class name="my.tests.Class2_tests" />
<class name="my.tests.Class3_tests" />
<class name="my.tests.Class4_tests" />
<class name="my.tests.Class5_tests" />
</classes>
</test>
<test verbose="2" name="IPHONE_SE : Parallel Tests">
<parameter name="device" value="IPHONE_SE" />
<parameter name="deviceOS" value="iOS" />
<classes>
<!-- ALL INSTALL TESTS -->
<class name="my.tests.Install" />
<class name="my.tests.Class1_tests" />
<class name="my.tests.Class2_tests" />
<class name="my.tests.Class3_tests" />
<class name="my.tests.Class4_tests" />
<class name="my.tests.Class5_tests" />
</classes>
</test>
</suite> <!-- Suite -->