我无法理解为什么我的基于网络的黄瓜测试永远不会终止。所有步骤定义都通过,但浏览器永远不会退出最后一步,因此我的脚本会挂起。
我目前正在运行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构建添加更多调试以找出问题所在。
答案 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