SimpleCov 0%覆盖率

时间:2012-10-02 05:22:18

标签: ruby gem code-coverage

我正在研究一个小宝石,并将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.

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

6 个答案:

答案 0 :(得分:19)

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

答案 1 :(得分:2)

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

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

...Rest of the test file

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

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

...Rest of the test file

希望这有助于某人,我疯了......

答案 2 :(得分:0)

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

在您需要simplecov后添加它 -

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

SimpleCov.configure do
  clean_filters
  load_adapter 'test_frameworks'
end

答案 3 :(得分:0)

如果以上其中一项无效。

在test.rb中验证:

config.eager_load = false 

答案 4 :(得分:0)

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

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

记录在案here

答案 5 :(得分:0)

我正在从命令行运行脚本,我发现解决方案只是在脚本的末尾加上退出。卫生署!

或者,以下也适用

SimpleCov.at_exit do
  SimpleCov.result.format!
end