Ruby SimpleCov 0%覆盖率
我正在开发一个小gem,包含在Ruby SimpleCov 0%覆盖率,ruby,gem,code-coverage,Ruby,Gem,Code Coverage,我正在开发一个小gem,包含在spec\u 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
spec\u 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.
可能存在什么问题以及如何解决?谢谢还要确保在文件的开头启用simplecov(也称为
simplecov.start
);尤其是在您需要代码之前。我也有同样的症状。我的问题是在我的测试文件中:
#spec/oneclass_spec.rb
需要“一类”
需要“spec\u helper”
…测试文件的其余部分
我需要将require
s的顺序更改为:
#spec/oneclass_spec.rb
需要“spec\u helper”
需要“一类”
…测试文件的其余部分
希望这对某人有所帮助,我快发疯了…以防上面的两个答案不起作用(就像我的情况一样),simplecov的github问题页面上的一位用户建议了这一点,这对我很有效 在需要simplecov后添加此项-
module SimpleCov::Configuration
def clean_filters
@filters = []
end
end
SimpleCov.configure do
clean_filters
load_adapter 'test_frameworks'
end
如果上述其中一项不起作用 验证在test.rb中:
config.eager_load = false
在我的例子中,问题是spring—我必须创建一个
config/spring.rb
,其中包含以下内容:
if ENV['RAILS_ENV'] == 'test'
require 'simplecov'
SimpleCov.start
end
如文件所述。我正在从命令行运行脚本,我发现解决方案只是在脚本的末尾放一个退出按钮。啊 或者,以下方法也适用
SimpleCov.at_exit do
SimpleCov.result.format!
end
这是我的问题;非常感谢。其他人指出了一种有用的诊断方法:在app/model文件的顶部添加一条
put
debug消息,并在spec\u helper.rb
中的SimpleCov.start
旁边添加另一条消息——如果在SimpleCov调试输出之前看到模型调试输出,您知道您的模型在SimpleCov之前加载。非常重要-SimpleCov.start
必须在您的要求
测试代码之前加载。