黄瓜需要花时间去跑步

时间:2012-08-30 06:40:49

标签: ruby-on-rails cucumber

我为rails 2应用程序提供了12,000行代码的黄瓜功能。 我正在运行所有功能,以获取应用程序代码的代码覆盖,如控制器,模型,帮助程序,查看页面代码。 要运行所有功能,需要4个小时。 我仍然没有得到100%的代码覆盖率,我的问题是如何通过黄瓜功能获得100%的代码覆盖率以及如何将所有功能的运行时间从4小时减少到最小可行时间。

2 个答案:

答案 0 :(得分:2)

我确信有很多关于加快黄瓜加速的网页,例如: http://aaron-jensen.com/post/5019042852/speed-up-your-rspec-cucumber-run就是一个。

您可能需要查看分析,因为使您的Cucumber变慢的原因可能是您的代码特有的,只有您可以看到。

请记住,集成测试的确有慢的声誉,因为它们正在测试整个堆栈(这就是重点)。这就是人们经常进行彻底的单元测试而不是彻底的集成测试的原因,因为在集成级别上测试所有内容的速度太慢了。

关于获得更好的覆盖率,如果您使用覆盖率报告告诉您覆盖了多少,它应该在HTML报告中告诉您哪些行未被覆盖,并且您可以为此定制测试。

然而,实际上有些事情你无法在用户界面中进行测试,因为它们具有稳健性 - 即你不希望在实践中发生的事情,但你只是为了以防万一他们出于意料之外的原因,或由于未来的代码更改。在这些情况下,单元测试可能是覆盖这些代码行的唯一方法。

答案 1 :(得分:0)

当然,运行该功能需要时间,因为它实际上模拟了用户交互。 您可以通过使用

指定要运行的确切方案来避免重新运行相同的方案
 cucumber path/to/file.feature:33

此处33指定要运行的文件中特定方案的行号。