0

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

4

2 回答 2

2

我确信有很多关于加速 Cucumber 的页面,例如http://aaron-jensen.com/post/5019042852/speed-up-your-rspec-cucumber-run就是其中之一。

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

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

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

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

于 2012-08-30T07:28:18.997 回答
0

当然,运行该功能需要时间,因为它实际上模拟了用户交互。您可以通过指定要运行的确切场景来避免重新运行相同的场景

 cucumber path/to/file.feature:33

这里 33 指定要运行的文件中特定场景的行号。

于 2012-08-30T07:07:54.297 回答