SimpleCov问题。一些未涵盖的文件

时间:2017-11-08 20:34:17

标签: ruby-on-rails testing simplecov

当使用相同的测试成功覆盖其他文件(100%)时,SimpleCov会忽略一些文件(0%)。

我使用框架的测试工具(Rails 5.1.4)运行我的测试。

这是我的test_helper.rb文件。

require 'simplecov'

# save to CircleCI's artifacts directory if we're on CircleCI
if ENV['CIRCLE_ARTIFACTS']
  dir = File.join(ENV['CIRCLE_ARTIFACTS'], 'coverage')
  SimpleCov.coverage_dir(dir)
end

SimpleCov.start 'rails'

ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'

SimpleCov使用Connection.types成功覆盖文件(100%)

class Connection < ApplicationRecord
  validates :type_of, inclusion: { in: proc { Connection.types.map(&:to_s) } }

  TYPES = %i[
    friend
    industry
    investor
  ].freeze

  belongs_to :project
  belongs_to :user

  def self.types
    TYPES
  end
end

SimpleCov使用Kpi.types这是文件未成功覆盖(0%)

class Kpi < ApplicationRecord
  REGEX = {
    float: "^\d+(\.?\d)?$"
  }.freeze

  TYPES = [
    { id: :buyers, name: 'Number of buyers', unit: 'users', example: '1000', regex: :float },
    { id: :sellers, name: 'Number of sellers', unit: 'users', example: '1000', regex: :float },
  ].freeze

  belongs_to :project

  def self.types
    TYPES
  end
end

我在这里看不到一个模式......你呢?

Either it's 100 or 0%

1 个答案:

答案 0 :(得分:0)

好的,找到了罪魁祸首:ActiveAdmin。以下是后人的答案:)

我添加了一个过滤器:

SimpleCov.start 'rails' do
  add_filter('/admin')
end

现在它运作良好。