Я использую селен webdriver с junit. Я запускаю свои тесты в IE с муравьем в Дженкинсе. Я хочу запустить несколько тестов как testuite.второй тест набора тестов не работает (браузер не открывается)
Так что я создал класс TestSuite:
@RunWith(Suite.class)
@SuiteClasses({ Test1.class, Test2.class,
Test3.class })
public class TestSuite {
}
В build.xml я добавил:
<target name="TestSuite">
<mkdir dir="${dir}" />
<junit fork="yes" printsummary="withOutAndErr">
<formatter usefile="false" type="plain" />
<formatter type="xml" />
<batchtest todir="${dir}">
<fileset dir="bin">
<include name="**/TestSuite.class" />
</fileset>
</batchtest>
<classpath refid="classpath" />
</junit>
</target>
Но я бегу тестов, Test1 выполняется успешно, и Test2 не удается, браузер даже не запущен. У меня есть метод До и после каждого теста. В До того, как я очистил кеш и в После запуска:
driver.quit();
driver = null;
killUnhandledProcess("IEDriverServer.exe");
killUnhandledProcess("iexplore.exe");
Как я могу запустить весь пакет без сбоев?
Журнал ошибок:
Testcase: test1 took 4,993 sec
[junit] Caused an ERROR
[junit] Session ID is null
[junit] Driver info: driver.version: RemoteWebDriver
[junit] org.openqa.selenium.remote.SessionNotFoundException: Session ID is null
[junit] Driver info: driver.version: RemoteWebDriver
[junit] at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:276)
[junit] at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:66)
[junit] at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:527)
[junit] at org.openqa.selenium.remote.RemoteWebDriver.get(RemoteWebDriver.java:276)...
У меня есть 2 пакета - один для самых испытаний. Каждый тест находится в отдельном классе, и все эти кланы расширяют базовый класс. В базовом классе у меня есть методы до и после. Второй пакет содержит классы для объекта страницы. В этом пакете основной класс Главная страница и на этой странице WebDriver инициализируется:
protected WebDriver driver = DriverStart.getDriver();
Реализация драйвера находится в отдельном классе (Singleton)
Я пытался сделать это. Не помогает – khris
есть причина, по которой вам нужно сделать драйвер = null part & kill the process (я полагаю, что с каким-то другим сторонним процессом, а не с WebDriver)? Недостаточно ли .quit()? –
Я изменил эту часть: driver.quit(); driver = null; killUnhandledProcess ("IEDriverServer.exe"); killUnhandledProcess ("iexplore.exe"); на просто driver.close() ;. Все еще не работает. IE закрывается после первого теста и не статирует снова – khris