ruby-on-rails – 如何检查rspec代码覆盖率

我正在开发我的第一个简单的Rails应用程序.而现在我刚做完我的作业,我应该先做其他事情 – rspec测试.我故意将它推迟,因为没有经验我甚至不确定什么以及如何进行rspec测试.最后,我可能对我的模型和控制器进行了大多数测试,现在是时候考虑我的测试覆盖了代码的程度.

然后我找到了rake stats,它告诉我:

+----------------------+-------+-------+---------+---------+-----+-------+
| Name                 | Lines |   LOC | Classes | Methods | M/C | LOC/M |
+----------------------+-------+-------+---------+---------+-----+-------+
| Controllers          |   214 |   161 |       4 |      29 |   7 |     3 |
| Helpers              |    12 |    12 |       0 |       1 |   0 |    10 |
| Models               |    17 |    13 |       2 |       0 |   0 |     0 |
| Mailers              |     0 |     0 |       0 |       0 |   0 |     0 |
| Javascripts          |    29 |     3 |       0 |       1 |   0 |     1 |
| Libraries            |     0 |     0 |       0 |       0 |   0 |     0 |
| Helper specs         |    15 |     4 |       0 |       0 |   0 |     0 |
| Controller specs     |   170 |   137 |       0 |       0 |   0 |     0 |
| Model specs          |    78 |    65 |       0 |       0 |   0 |     0 |
+----------------------+-------+-------+---------+---------+-----+-------+
| Total                |   535 |   395 |       6 |      31 |   5 |    10 |
+----------------------+-------+-------+---------+---------+-----+-------+
  Code LOC: 189     Test LOC: 206     Code to Test Ratio: 1:1.1

它显示了我的控制器和模型有多少个类和方法.但我在这里缺少的是测试了多少.我希望在那里有它而不是零.同时很高兴知道哪些方法没有测试.是否有宝石提供该信息或其他方式来检查它?

解决方法

我推荐 SimpleCov.

这是一个很好的起始配置,可以放入spec_helper.rb:

SimpleCov.start do
  add_filter '/test/'
  add_filter '/config/'
  add_filter '/vendor/'

  add_group 'Controllers','app/controllers'
  add_group 'Models','app/models'
  add_group 'Helpers','app/helpers'
  add_group 'Mailers','app/mailers'
end
# This outputs the report to your public folder
SimpleCov.coverage_dir 'public/coverage'

这使得它忽略了测试,配置和供应商文件夹中的文件,并在HTML报告中的各自选项卡下对控制器,模型,帮助程序和邮件程序进行分组.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...