2013-12-16 3 views
0

Я использую селен 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)

ответ

0

Попробуйте переместить код @After в метод @AfterClass , таким образом он должен запускать все методы перед удалением объекта драйвера.

Вы можете использовать метод @After вернуться на главную страницу/выхода из системы при необходимости с приложением тестируемой

+0

Я пытался сделать это. Не помогает – khris

+0

есть причина, по которой вам нужно сделать драйвер = null part & kill the process (я полагаю, что с каким-то другим сторонним процессом, а не с WebDriver)? Недостаточно ли .quit()? –

+0

Я изменил эту часть: driver.quit(); driver = null; killUnhandledProcess ("IEDriverServer.exe"); killUnhandledProcess ("iexplore.exe"); на просто driver.close() ;. Все еще не работает. IE закрывается после первого теста и не статирует снова – khris

Смежные вопросы