simplecov自定义筛选器组报告忽略的代码

时间:2014-06-22 21:07:22

标签: ruby-on-rails ruby tdd simplecov

我正在尝试在simplecov中创建报告,以报告我的应用程序中的恶意行为。基本上我想要一个选项卡来报告任何使用:nocov:参数的文件,以防止simplecov报告它。现在,我知道这些可能并不全是坏事,所以我只想将它们过滤到一个标签而不影响总分。

目前我有自定义标签设置,但过滤器不会正确过滤文件。谁能指出我正确的方向?

custom tab

示例简单cov忽略方法:

# :nocov:
def my_debug_method
  do_something
end
# :nocov:

以下是我当前的.simplecov设置:

class IgnoredCodeFilter < SimpleCov::Filter
  def matches?(src_file)
    src_file.grep(/:nocov:/).size > 0
  end
end
SimpleCov.start do
  add_group "Ignored Code" do |src_file|
    IgnoredCodeFilter.new(src_file)
  end
end

当前错误消息:

Formatter SimpleCov::Formatter::HTMLFormatter failed with NoMethodError: undefined method `grep' for #<SimpleCov::SourceFile:0x007f920e166fa0> (.simplecov:13:in `block (2 levels) in <top (required)>')

1 个答案:

答案 0 :(得分:0)

以下是我最终如何解决此问题以防其他人正在寻找它。

只需将其添加到.simplecov配置文件中:

SimpleCov.start do
  add_group "Ignored Code" do |src_file|
    open(src_file.filename).grep(/:nocov:/).any?
  end
end