所有情况通过后,黄瓜都会挂起

时间:2012-01-30 11:16:42

标签: ruby-on-rails ruby cucumber jruby jrubyonrails

我在Rails应用程序上有jRuby并进行了一些黄瓜测试。

问题是cucumber features在执行所有步骤后挂起,直到按ctrl + c。有趣的是,只有在所有测试都通过后才会发生。

10 scenarios (10 passed)
116 steps (116 passed)
13m59.058s
-> hangs here

我尝试添加全局at_exit挂钩,正在执行它而不是命令冻结。

这是我的bundle list https://gist.github.com/37f2448055071bbbc636

我的临时解决方案是添加at_exit这样的挂钩

at_exit do 
  exit! !($!.nil? || $!.is_a?(SystemExit) && $!.success?)
end

某些连接可能会保持打开状态,数据未清除等等,但它至少会以CI服务器使用的正确状态代码退出。

2 个答案:

答案 0 :(得分:0)

在我们的案例中,我们意识到当我们创建没有正确退出的后台进程时会发生这种锁定。我们修复此问题,将system()调用替换为spawn()次调用,并在at_exit挂钩中终止所有子进程。

答案 1 :(得分:0)

我意识到这是一篇非常老的文章,但是如果有人偶然发现,请按照以下说明进行操作:

https://github.com/cucumber/cucumber-js/blob/master/docs/cli.md#exiting

如果您在黄瓜命令之后添加--exit,则在测试完成后黄瓜将退出。这至少对我有用。