2012-04-30 48 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"/> 

所有测试完成后,该关闭浏览器。

相关问题