9

我正在研究一个小宝石,并将simplecov 包含spec_helper.rb两行中:

require 'simplecov'
SimpleCov.start

当我运行 rspec 测试时,simplecov 似乎正确启动,但报告不是:

Finished in 0.00214 seconds
8 examples, 0 failures

Coverage report generated for /home/...... 
spec to /home/megas/Work/calc/coverage. 0 / 0 LOC (0.0%) covered.

可能是什么问题以及如何解决?谢谢

4

6 回答 6

21

还要确保在文件的开头启用 simplecov ( aka ) SimpleCov.start;特别是在您需要您的代码之前。

于 2012-10-02T07:17:21.507 回答
2

我有同样的症状。我的问题是在我的测试文件中:

#spec/oneclass_spec.rb
require 'oneclass'
require 'spec_helper'

...Rest of the test file

我需要将requires 的顺序更改为:

#spec/oneclass_spec.rb
require 'spec_helper'
require 'oneclass'

...Rest of the test file

希望这对某人有帮助,我快疯了......

于 2014-02-21T17:57:33.237 回答
0

万一上述两个答案不起作用(如我的情况),simplecov 的 github 问题页面上的用户建议这样做,这对我有用。

在你需要 simplecov- 之后添加这个

module SimpleCov::Configuration
  def clean_filters
    @filters = []
  end
end

SimpleCov.configure do
  clean_filters
  load_adapter 'test_frameworks'
end
于 2014-06-25T19:50:17.607 回答
0

如果上述方法之一不起作用。

在 test.rb 中验证:

config.eager_load = false 
于 2015-02-03T17:57:20.280 回答
0

就我而言,问题是春天 - 我必须config/spring.rb使用以下内容创建一个:

if ENV['RAILS_ENV'] == 'test'
  require 'simplecov'
  SimpleCov.start
end

如此处所述

于 2015-04-09T17:40:44.523 回答
0

我正在从命令行运行脚本,我发现解决方案只是在我的脚本末尾放置一个出口。嗬!

或者,以下也适用

SimpleCov.at_exit do
  SimpleCov.result.format!
end
于 2015-05-13T13:53:39.063 回答