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