0

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

我目前正在运行 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

环境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()
}

帮助页面.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 构建中添加更多调试以找出问题所在。

4

3 回答 3

1

I think you need to call quit() on the Browser (you'll probably need to save a handle to it in your Before() hook).

I don't have time to test it for sure - we've moved from cuke4duke to cucumber-groovy, but I think it's actually a Geb Browser issue you're seeing here.

于 2012-03-30T11:50:57.380 回答
0

你试过在没有cuke4duke 的情况下运行它吗?

我发现 cuke4duke 很有趣,但我决定放弃 JRuby(不确定你是否正在使用它)并直接安装 ruby​​,它更快更可靠。

于 2011-05-05T06:26:14.700 回答
0

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

于 2011-07-23T07:30:56.367 回答