我只是在为一个遗留的Rails应用构建一个测试套件。simplecov
gem对于发现应用中需要测试覆盖的黑暗角落(或者可能完全没有使用,可以删除)非常有用。我只是在test/test_helper.rb
的顶部包含以下内容来调用simplecov
:
require 'simplecov'
SimpleCov.start('rails')
问题是这并没有检查所有嵌入在模板中的代码,那里有各种各样的垃圾,我相信很多都可以被删除,但是如果代码覆盖工具能告诉我没有使用的代码,那就太好了。
对Ruby 1.9的Coverage
库的一些实验使我相信,只有当模板以某种方式预编译为Ruby代码,保存在Ruby源文件中,然后load
ed或require
d,而不是直接用eval
加载编译后的模板时,它才能完成这项工作。有可能攻击ERB,在编译过程中向每个模板的每一行添加日志记录语句。
有没有人知道如何度量ERB模板的代码覆盖率?你知道一个已经做好的工具可以做到这一点吗?(或者我必须是一个构建和发布它的人?)
3条答案
按热度按时间u4dcyp6a1#
参见:How do I get coverage for view specs with rspec, rails, and simplecov?
答案是,你不能:
https://github.com/colszowka/simplecov/issues/38
这是一个严重的缺陷,我希望有人能解决。AFIK没有什么比简单的Ruby 1.9更好的了
5fjcxozz2#
几年前,有一个新的Gem可用于模板覆盖检测:
covered
:https://github.com/ioquatix/covered
它将在测试运行之后显示所有接触过的模板的代码覆盖率。
sg24os4d3#
尝试rake统计
它将生成一个包含应用程序每个部分的覆盖范围的表