2012-04-30 67 views
1

我們使用Gherkin,Cucumber-jvm和Webdriver對標準的Java/Spring webapp運行驗收測試。問題是,使用Maven作業運行測試時,測試完全成功,但作業無法完成。只有在關閉Firefox窗口後才能完成作業。使用Cucumber/Webdriver的驗收測試永遠不會完成

我們有一個解決方法,在每個功能之後明確地關閉瀏覽器,但由於時間延遲,這將很快變得不可持續。

的技術棧如下:

黃瓜-JVM 1.0.4

硒2.12.0

火狐8.0

該應用程序在JBoss的EAP 5.1運行在視窗7機。

當我們使用JRuby版本的Cucumber時,這種行爲並沒有出現在上面的硒/ firefox組合中,儘管當我們使用更高版本的版本時也是如此。

有沒有人見過這種行爲之前,有沒有人有任何建議或解決方法?

在此先感謝

+0

爲什麼你的意思是「由於時間滯後而很快變得不可持續」。 ? –

+0

我們的測試套件(2000+步驟)最多需要40分鐘才能運行,只需使用一個Firefox瀏覽器實例即可。爲每個功能文件(帶有標籤)或場景添加關閉/重新打開瀏覽器的開銷增加了更多時間,使其在快速變化的代碼庫中處於不可持續的水平。 – TrueDub

+0

並行運行[https://github.com/cucumber/cucumber-jvm/issues/86](https://github.com/cucumber/cucumber-jvm/issues/86)。 –

回答

1

您是否關閉WebDriver?

@cucumber.annotation.After 
public void afterScenarioRun() { 
    driver.close(); 
} 
+0

是的,我們這樣做,但這是我想要避免 - 不得不關閉然後重新打開瀏覽器窗口的開銷影響的運行時間該套件,只會變得更糟。我希望有另一種解決方案 - 像@EndSuite選項。 – TrueDub

+0

看看鉤子:[https://github.com/cucumber/cucumber/wiki/Hooks](https://github.com/cucumber/cucumber/wiki/Hooks) –

+0

我對Hooks的建議是行不通的,因爲對於他們基本上和After and Before:cucumber.runtime.java一樣。JavaBackend#addHook –

1

我在春季環境(黃瓜春季)使用黃瓜和硒。當webdriver的是由Spring管理,您可以添加destroy="close"至綠豆確定指標:

<bean id="webDriver" class="org.openqa.selenium.ie.InternetExplorerDriver" destroy-method="close"/> 

所有測試完成後,該關閉瀏覽器。

相關問題