简单覆盖路线未显示

时间:2013-02-21 21:59:02

标签: ruby-on-rails

我有一个rails应用程序,当我运行我的测试时,我在my / cov文件夹中创建新文件

Finished in 20.6 seconds
19 examples, 0 failures
Coverage report generated for RSpec to /Users/nicholasshook/Sites/<<my project>>/coverage. 264 / 446 LOC (59.19%) covered.

完成。

但是,当我尝试访问localhost / coverage / index.html时,我收到此错误

No route matches [GET] "/coverage/index.html"

由于

4 个答案:

答案 0 :(得分:6)

如果您正在使用SimpleCov或某些类似的gem来生成测试结果,那么这些是静态HTML文件,可以在您的计算机上本地查看。 I.E.只需浏览/Users/nicholasshook/Sites/<>/coverage/index.html并在浏览器中打开该文件。

出于安全性和可管理性的原因,Rails不会创建到/coverage/index.html的路由。您可以创建到静态html页面的路由,但它们必须位于/ public目录中。如果您需要在应用中访问覆盖率结果,则可以选择以下几种方法:

  1. 将您的coverage文件移至/ public目录,并使用类似High_Voltage https://github.com/thoughtbot/high_voltage的gem来创建路径
  2. 您需要重新配置覆盖率工具,将文件放入/ public目录,或手动复制它们

答案 1 :(得分:2)

我设法通过在我的spec_helper.rb文件中的SimpleCov.start'trail'之后使用以下行来完成此操作。

SimpleCov.start 'rails'
SimpleCov.root('/my/app/root/directory/public')

您还应该将/ public / coverage添加到.gitignore文件

答案 2 :(得分:2)

这打破了报道。最好是:

cd public && ln -s ../coverage coverage

答案 3 :(得分:0)

public文件夹添加为root会更改测试覆盖率的文件范围。 这对我有用

SimpleCov.start do
 SimpleCov.coverage_dir('public/coverage')
end