Simplecov报道似乎错过了某些行

时间:2012-12-15 05:54:45

标签: ruby-on-rails ruby rspec code-coverage

在对simplecov如何确定某条线是否已通过测试进行了一些澄清之后。

我有以下方法:

def over?
  end_at < Time.zone.now
end

其中end_at是对象的ActiveRecord属性。

在以下规范中进行了哪些操作:

describe CalendarEntry do
  it 'can determine that an event has ended' do
    @entry.end_at = 1.day.ago
    @entry.over?.should be_true
  end
end

运行带有coverage的规范后,它会显示以下结果:

coverage report

我已经在这一行中断点调试模式运行测试,并证实了该规范确实击中它。

这不是分离的只是这一行在该方法中,示出每一个包括使用一个ActiveRecord相关联的吸气剂的线为不覆盖。可能是巧合,但似乎有点奇怪。

环境:红宝石1.9.3-P327(MRI),导轨3.2.8,0.7.1 simplecov,rspec的2.10.0

关于为什么simplecov认为它没有被覆盖的任何想法?

1 个答案:

答案 0 :(得分:1)

好的,所以我在Windows上运行的JRuby上添加了同样的问题。 答案实际上是向我提示的,如果没有在调试模式下运行,Simplecov可能会遗漏一些行。

(j)ruby --debug -S rspec spec

使用--debug选项确实有效,我按预期恢复了100%的覆盖率。