15

我只是为遗留 Rails 应用程序构建一个测试套件。gem 非常适合查找需要测试覆盖的应用程序的simplecov黑暗角落(或者可能完全未使用并且可以删除)。我simplecov只是通过在顶部包含以下内容来调用test/test_helper.rb

require 'simplecov'
SimpleCov.start('rails')

问题是这并没有检查嵌入在模板中的所有代码。里面有各种各样的垃圾,我敢肯定很多垃圾都可以删除,但是如果代码覆盖工具可以将我指向未使用的位,那就太好了。

对 Ruby 1.9 库的一些实验让我相信,如果模板以某种方式预编译为 Ruby 代码,保存在 Ruby 源文件中,然后ed 或d,而不是直接加载已编译的模板Coverage,它才能完成这项工作与. 或者,有可能破解 ERB 在编译过程中将日志语句添加到每个模板的每一行。loadrequireeval

有没有人有任何其他想法如何衡量 ERB 模板的代码覆盖率?您知道可以做到这一点的现有工具吗?(或者我必须是构建和发布它的人吗?)

4

2 回答 2

15

请参阅: 如何使用 rspec、rails 和 simplecov 获取视图规范的覆盖范围?

答案是,你不能:

https://github.com/colszowka/simplecov/issues/38

这是我希望有人能解决的关键缺陷。AFIK 对于 Ruby 1.9,没有什么比 simplecov 更好的了

于 2012-10-29T02:45:45.280 回答
-3

试试 rake stats

它将生成一个表格,涵盖应用程序的每个部分

于 2012-10-23T13:14:01.667 回答