我有一个项目,其中我使用rails 3.2.3,rspec 2.9.0和simplecov 0.6.1,似乎都是最新的宝石.
我正在为我的控制器和模型获得代码覆盖率结果,但不是我的观点.我尝试在simplecov设置中添加组:
SimpleCov.start 'rails' do
add_group 'Views', 'app/views'
end
Run Code Online (Sandbox Code Playgroud)
甚至明确说我想要.erb文件包括:
SimpleCov.start 'rails' do
add_group 'Views', 'app/views/*/*.erb'
end
Run Code Online (Sandbox Code Playgroud)
......但没有骰子.我的覆盖结果中有"视图"组,但没有列出任何文件.
有没有人得到这个工作?
我只是为传统的Rails应用程序构建测试套件.该simplecov宝石一直是伟大的发现它需要的测试覆盖率应用四角发暗(或者可能是完全没有使用的OK删除).我simplecov只是通过在顶部包含以下内容来调用test/test_helper.rb:
require 'simplecov'
SimpleCov.start('rails')
Run Code Online (Sandbox Code Playgroud)
问题是,这不会检查嵌入在模板中的所有代码.那里有各种各样的垃圾,我确信很多垃圾都可以删除,但如果代码覆盖工具可以指向未使用的位,那将是非常好的.
使用Ruby 1.9 Coverage库进行的一些实验让我相信,如果模板以某种方式预编译为Ruby代码,保存在Ruby源文件中,然后load编辑或require删除,而不是直接加载编译模板,那么它只能完成工作.与eval.或者,可能会破坏ERB在编译过程中向每个模板的每一行添加日志记录语句.
有没有人有任何其他想法如何衡量ERB模板的代码覆盖率?你知道一个可以做到这一点的已经制造的工具吗?(或者我必须成为构建和发布它的人吗?)