我怎样才能让工作服忽略来自 gem 的代码,我的 gem 作为依赖项?
How can I get coveralls to ignore code from gems my gem has as dependencies?
我做了一个小的 gem (SmsSafe),它目前有 100% 的代码覆盖率(根据 SimpleCov)。
但是,根据 Coveralls 的数据,它只有 41% 的覆盖率 (report here)。
造成这种差异的原因似乎是工作服从我的 gem 的依赖项中获取代码作为我代码的一部分,并抱怨那些没有被涵盖...
我似乎没有在我调查过的任何其他 gem 中执行此操作,而且我在那些 gem 的代码库中似乎没有任何特殊的工作服配置。 .
我调用工作服的方式是在我的 Rakefile 中包含这个:
require 'coveralls/rake/task'
Coveralls::RakeTask.new
task :test_with_coveralls => ["test", "coveralls:push"]
并让 Travis evecute "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
我做了一个小的 gem (SmsSafe),它目前有 100% 的代码覆盖率(根据 SimpleCov)。
但是,根据 Coveralls 的数据,它只有 41% 的覆盖率 (report here)。
造成这种差异的原因似乎是工作服从我的 gem 的依赖项中获取代码作为我代码的一部分,并抱怨那些没有被涵盖...
我似乎没有在我调查过的任何其他 gem 中执行此操作,而且我在那些 gem 的代码库中似乎没有任何特殊的工作服配置。 .
我调用工作服的方式是在我的 Rakefile 中包含这个:
require 'coveralls/rake/task'
Coveralls::RakeTask.new
task :test_with_coveralls => ["test", "coveralls:push"]
并让 Travis evecute "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