为什么我的黄瓜场景在步骤一起运行时失败,但在单独运行时通过?

时间:2011-01-10 03:55:11

标签: ruby-on-rails rspec cucumber

当我整个运行我的黄瓜场景时,或者使用命令:黄瓜 我得到7个失败的步骤。当我使用正在进行的工作标签单独运行它们时,它们会很好地通过。

我不认为这是一个数据库状态问题..我正在运行事务,我也尝试过运行而没有用数据库清理器清理数据库....仍然无济于事。

我试图运行调试器但是当我运行命令黄瓜时它似乎不起作用。它仅在我使用正在进行的工作标记运行时才有效:cucumber -p wip

我认为可能是事情运行得太快而且水豚没有正确检查事情?

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

尤里卡!我一直有同样的问题一段时间了 - 我的测试变得越来越慢,我添加的越多 - 同时,一些测试会随机失败,但只有当作为整个套件运行时 - 在我的测试结束后我才会运行功能再次和中提琴!一切都过去了非常令人沮丧 - 但最令人沮丧的部分是速度 - 最近我升级到雪豹并将所有内容编译为64位。结果?我的测试从7分钟变为32分钟!

然而,有一个线索 - 64位应用程序使用更多的内存来做同样的事情 - 显然 - 然而,当我运行我的测试时,我的机器上的内存永远不会接近最大化。提示#2? Webrat正在快速发展,只有在使用culerity / celerity来测试javascript时,事情才真正放缓。

在我四处寻找之后,我发现jruby告诉java给它最大'堆大小'为512 mbs。 JRuby允许您在调用时设置java选项,而culerity允​​许环境变量以您喜欢的方式调用jruby。果然,大约在那个时候,java会停止消耗内存,处理器会试图让自己着火。那你准备好了吗?这是:

JRUBY_INVOCATION="jruby -J-Xmx1024m" cucumber

这使我的堆大小增加到一个千兆字节,我的测试时间下降到7分钟!是吗?我明白了吗?我当然希望它有所帮助!