Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby SimpleCov 0%覆盖率_Ruby_Gem_Code Coverage - Fatal编程技术网

Ruby SimpleCov 0%覆盖率

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

我正在开发一个小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 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
必须在您的
要求
测试代码之前加载。