我做了一个小 gem ( SmsSafe ),它目前有 100% 的代码覆盖率(根据 SimpleCov)。
但是,根据 Coveralls 的数据,它只有 41% 的覆盖率 ( report here )。
造成这种差异的原因似乎是 coveralls 将我的 gem 依赖项中的代码作为我代码的一部分,并提示那些没有被涵盖...
我似乎没有在我调查过的任何其他 gems 中执行此操作,而且我似乎没有在这些 gems 的代码库中进行任何特殊的工作服配置...
我调用 coveralls 的方式是在我的 Rakefile 中包含这个:
require 'coveralls/rake/task'
Coveralls::RakeTask.new
task :test_with_coveralls => ["test", "coveralls:push"]
并让 Travis 执行“test_with_coveralls”:
script: bundle exec rake test_with_coveralls
哪种添加方式才是正确的according to their docs
知道为什么会发生这种情况吗?
最佳答案
需要两个步骤。
一方面,按照 Coveralls 文档,将 SimpleCov 格式化程序设置为 Coveralls:
require "simplecov"
require "coveralls"
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
SimpleCov::Formatter::HTMLFormatter,
Coveralls::SimpleCov::Formatter
]
或
SimpleCov.formatter = Coveralls::SimpleCov::Formatter
不过,这并不能解决问题,这是未记录的部分:
调用SimpleCov.start时,确保过滤掉“/gemfiles/vendor”目录
SimpleCov.start do
add_filter "/gemfiles/vendor"
end
关于ruby - 我怎样才能让工作服忽略我的 gem 作为依赖项的 gem 中的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27776564/