Ruby 带有独立 .rb 代码的 SimpleCov 0.0 LOC
Ruby SimpleCov 0.0 LOC with stand alone .rb code
我正在尝试使用 SimpleCov 来收集代码覆盖率信息,但我似乎无法理解它是如何工作的。它总是给我 0.0% LOC。我需要做些什么才能让它发挥作用吗?
require 'simplecov'
SimpleCov.start
SimpleCov.command_name 'Unit Tests'
def foo
puts '12345'
end
foo
我看到以下输出:
$ ruby mytest.rb
12345
为 /private/tmp/simpletest/coverage 的单元测试生成的覆盖率报告。覆盖 0.0 / 0.0 LOC (100.0%)。
是否必须在rspec或某些特殊环境下使用它?我不能只为任意代码启用代码覆盖率吗?
SimpleCov 从覆盖率报告中过滤掉原始源文件本身。要使其像这样独立运行,您需要将测试代码放入单独的文件中:
require 'simplecov'
SimpleCov.start
SimpleCov.command_name 'Unit Tests'
require_relative 'my_code'
foo
然后在my_code.rb
:
def foo
puts '12345'
end
现在您将得到一份正确的报告。
我正在尝试使用 SimpleCov 来收集代码覆盖率信息,但我似乎无法理解它是如何工作的。它总是给我 0.0% LOC。我需要做些什么才能让它发挥作用吗?
require 'simplecov'
SimpleCov.start
SimpleCov.command_name 'Unit Tests'
def foo
puts '12345'
end
foo
我看到以下输出:
$ ruby mytest.rb
12345
为 /private/tmp/simpletest/coverage 的单元测试生成的覆盖率报告。覆盖 0.0 / 0.0 LOC (100.0%)。
是否必须在rspec或某些特殊环境下使用它?我不能只为任意代码启用代码覆盖率吗?
SimpleCov 从覆盖率报告中过滤掉原始源文件本身。要使其像这样独立运行,您需要将测试代码放入单独的文件中:
require 'simplecov'
SimpleCov.start
SimpleCov.command_name 'Unit Tests'
require_relative 'my_code'
foo
然后在my_code.rb
:
def foo
puts '12345'
end
现在您将得到一份正确的报告。