我有一个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"
由于
答案 0 :(得分:6)
如果您正在使用SimpleCov或某些类似的gem来生成测试结果,那么这些是静态HTML文件,可以在您的计算机上本地查看。 I.E.只需浏览/Users/nicholasshook/Sites/<>/coverage/index.html并在浏览器中打开该文件。
出于安全性和可管理性的原因,Rails不会创建到/coverage/index.html的路由。您可以创建到静态html页面的路由,但它们必须位于/ 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