3

我有一个 Rails 应用程序,当我运行测试时,我在 /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

4 回答 4

7

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

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

  1. 将覆盖文件移动到 /public 目录,并使用像 High_Voltage https://github.com/thoughtbot/high_voltage这样的 gem在那里创建一条路线
  2. 您需要重新配置覆盖工具以将文件放在 /public 目录中,或者手动复制它们
于 2013-02-22T00:21:42.160 回答
2

我设法通过在我的 spec_helper.rb 文件中的 SimpleCov.start 'rails' 之后使用以下行来做到这一点。

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

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

于 2013-07-03T13:29:07.867 回答
2

这打破了报道。最好是:

cd public && ln -s ../coverage coverage
于 2014-02-22T23:29:04.013 回答
0

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

SimpleCov.start do
 SimpleCov.coverage_dir('public/coverage')
end
于 2019-04-03T06:28:16.590 回答