Ruby SimpleCov缺少一条返回线

时间:2013-09-29 02:57:08

标签: ruby code-coverage simplecov

这是我的类,它返回参数的乘法

class NetAssetValue

def calculate_net_asset_value(number_of_shares, price)

    number_of_shares * price
  end

end

这是我的测试

require 'net_asset_value'

require 'test/unit'

class NetAssetValueTest  < Test::Unit::TestCase

  def setup

    @asset = NetAssetValue.new

  end


  def test_calculate_net_asset_value_for_a_symbol

    assert_equal(100, @asset.calculate_net_asset_value(20,5))

  end

end

我正在使用SimpleCov 0.7.1。覆盖率报告表示该方法中的一行虽未涵盖,但未涵盖。

它表示覆盖率为66.67%并且行

  

number_of_shares *价格

未涵盖但是当我在RubyMine中调试并在该行上放置一个断点时,它正被击中。

需要帮助。 谢谢。

1 个答案:

答案 0 :(得分:1)

您不能在Rake::TestTask内使用Simplecov,因为该任务在单独的进程中运行测试。请参阅https://github.com/colszowka/simplecov/issues/88

修改

澄清一下:您当然可以使用Rakefile来使用SimpleCov,但是您无法在Rakefile中启动它(SimpleCov.start)。您需要在测试中执行此操作,例如在你的测试帮助器中。 请注意,在需要生产代码之前必须先调用SimpleCov.start