我的cuke4duke测试挂起并永不终止

时间:2011-05-01 00:49:47

标签: browser cucumber bdd webdriver geb

我无法理解为什么我的基于网络的黄瓜测试永远不会终止。所有步骤定义都通过,但浏览器永远不会退出最后一步,因此我的脚本会挂起。

我目前正在运行cuke4duke(0.4.3),Geb(0.5.1),maven(2.2.1),selenium-firefox-driver / selenium-chrome-driver(2.0a6和a7)

我在Chrome和Firefox(3.6)/ Windows XP和Ubuntu中测试过我的脚本但没有成功。

以下是我的maven构建的输出

[INFO]   Scenario: Navigate from homepage               # features/helppage.feature:7
[INFO]     Given I am on the homepage                   # Helppage$_run_closure1@f93ee4
[INFO]     When I click on the about page               # Helppage$_run_closure2@1c87031
[INFO]     Then the title should display "About Google" # Helppage$_run_closure3@1f784d7
[INFO] 
[INFO] 1 scenario (1 passed)
[INFO] 3 steps (3 passed)
[INFO] 0m5.421s
HANGING HERE

Env.groovy

import geb.Browser
import org.openqa.selenium.chrome.ChromeDriver;

this.metaClass.mixin(cuke4duke.GroovyDsl)

Before() {
new Browser(new ChromeDriver(),'http://www.google.com')
}

After() {
clearCookies()
}

helppage.groovy

this.metaClass.mixin(cuke4duke.GroovyDsl)

Given (~/I am on the homepage/) {
go('/')
}

When (~/I click on the about page/) {
go('/intl/en/about.html')
}

Then (~/the title should display "(.*)"/) { pageTitle ->
assert title == pageTitle
}

如果问题出在webdriver或cuke4duke发行版或其他任何地方,我无法解决问题。我也不确定如何为maven构建添加更多调试以找出问题所在。

3 个答案:

答案 0 :(得分:1)

我认为您需要在浏览器上调用quit()(您可能需要在Before()挂钩中保存句柄。)

我没有时间对它进行测试 - 我们已经从cuke4duke转移到了黄瓜groovy,但我认为这实际上是你在这里看到的Geb Browser问题。

答案 1 :(得分:0)

您是否尝试过运行没有 cuke4duke?

我发现cuke4duke非常有趣但决定放弃JRuby(不确定你是否使用它)并使用直接的红宝石安装,这样更快,更可靠。

答案 2 :(得分:0)

尝试更新到最新的jRuby(1.6.0)。可能与此问题有关:Cucumber 0.4.3 (cuke4duke) with java + maven gem issues