我有一个jRuby on Rails应用程序,其中有一些黄瓜测试。
问题是 cucumber features
在执行所有步骤后挂起,直到我按ctrl+c。有趣的是,只有在所有测试都通过的情况下才会出现这种情况。
10 scenarios (10 passed)
116 steps (116 passed)
13m59.058s
-> hangs here
我试着添加全局 at_exit
钩子,它正在执行,比命令冻结。
这里是我的 bundle list
https:/gist.github.com37f2448055071bbbc636。
我的临时解决方案是增加 at_exit
这样勾
at_exit do
exit! !($!.nil? || $!.is_a?(SystemExit) && $!.success?)
end
一些连接可能没有打开,数据没有被清理等等,但它至少会以正确的状态码退出,CI服务器会使用这些状态码。
在我们的案例中,我们意识到,当我们创建的后台进程没有正确退出时,就会发生这种锁定。 我们修复了这个问题,将 system()
呼叫 spawn()
的子进程,并在at_exit钩子中杀死所有子进程。
我意识到这是一个非常老的帖子,但如果有人偶然发现了这一点,请按。
https:/github.comcucumbercucumber-jsblobmasterdocscli.md#exiting
如果加上 --exit
在你的cucumber命令之后,cucumber会在测试结束后退出。至少我是这么做的。