0
我使用了带有junit的硒webdriver。我在詹金斯用蚂蚁在IE中运行我的测试。我想以测试套件的形式运行多个测试。测试套件的第二项测试失败(浏览器未打开)
所以我创建的类的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个包 - 一个用于测试本身。每个测试都在单独的类中,并且所有这些分类都扩展了基类。在基类中,我有Before和After方法。第二个包包含页面对象的类。此包中的主类是主页,并在此页的webdriver被初始化:
protected WebDriver driver = DriverStart.getDriver();
驱动程序的实施是在单独的类(单)
我试图做到这一点。没有帮助 – khris
是否有一个原因,你必须做驱动程序= null部分&杀死进程(我假设与其他第三方进程,而不是WebDriver)?是.quit()不够? –
我改变了这个部分:driver.quit(); driver = null; killUnhandledProcess(“IEDriverServer.exe”); killUnhandledProcess(“iexplore.exe”);只是driver.close();.仍然不起作用。 IE在第一次测试结束后关闭,并且不会再次监听 – khris