小编dan*_*oux的帖子

SimpleCov 具有多个应用程序 - 或者简而言之,Simplecov 是如何工作的?

我正在尝试设置 SimpleCov 为 3 个应用程序生成报告,这些应用程序从本地 gem 共享大部分代码(模型、控制器),但每个应用程序使用的代码的规范位于每个 ./spec 内,而不是在 gem 本身上。

举个更清楚的例子。当我在 app_1 中运行使用来自本地 gem 的共享模型的 bundle exec rspec spec 时,我想获得此 app_1 在 ./spec 中的所有规格的(准确)报告。

本地 gem 还有一些专门属于 app_2 的模型,位于命名空间内,因此当我在 app_1 内运行测试套件时,我想跳过这些文件的报告。

我正在尝试使用 app_1/spec/spec_helper 中的以下代码来实现此目的。

# This couple of lines are needed to generate report for the models, etc. inside the local gem.
SimpleCov.adapters.delete(:root_filter)
SimpleCov.filters.clear

SimpleCov.adapters.define 'my_filter' do
  root = SimpleCov.root.split("/")
  root.pop
  add_filter do |src|
    !(src.filename =~ /^#{root.join("/")}/)
  end

  add_filter "/app_2_namespace/"
end

if ENV["COVERAGE"] == "true"
  SimpleCov.start 'rails'
end
Run Code Online (Sandbox Code Playgroud)

这是有效的,直到一些问题开始出现。 …

testing code-coverage ruby-on-rails ruby-on-rails-3

5
推荐指数
1
解决办法
2003
查看次数