Ruby on rails SimpleCov未覆盖def/方法内部

Ruby on rails SimpleCov未覆盖def/方法内部,ruby-on-rails,cucumber,bdd,rcov,Ruby On Rails,Cucumber,Bdd,Rcov,背景:running Rails 3.2、Cucumber 1.1.4和SimpleCov 0.5.4 我们所有的黄瓜规格都通过了,代码应该包括在内。但奇怪的是,当我们检查SimpleCov生成的Cucumber覆盖率报告时,methods/def中的实际代码根本没有被覆盖。没有包含任何方法代码。奇怪的是,类名、模块名、访问器声明都被覆盖了 因此,在本例中,第01、02、03、07行显示为已覆盖,而不是04、05、08、09行 01 class Summary 02 attr_accessor

背景:running Rails 3.2、Cucumber 1.1.4和SimpleCov 0.5.4

我们所有的黄瓜规格都通过了,代码应该包括在内。但奇怪的是,当我们检查SimpleCov生成的Cucumber覆盖率报告时,methods/def中的实际代码根本没有被覆盖。没有包含任何方法代码。奇怪的是,类名、模块名、访问器声明都被覆盖了

因此,在本例中,第01、02、03、07行显示为已覆盖,而不是04、05、08、09行

01 class Summary
02  attr_accessor :jobs
03  def initialize (events)
04    @events = events
05    createJobs
06  end
07  def createJobs
08   code here
09   code here
10  end
11 end
任何帮助都将不胜感激


谢谢。

我想我现在知道怎么回事了。我的cucumber特性/步骤不是直接测试代码,而是通过浏览器(使用capybara)进行测试。因此,覆盖率可能不会通过代码(控制器/模型)运行


如果这是真的,有什么补救办法吗?我不想/不需要在我的文档中提到控制器/模型。。。相反,它是从用户的角度(浏览器)进行测试。

类名、模块名和访问器声明在第一次加载类本身时被解析。如果您创建一个类,然后运行只加载该类的测试,您将看到同样的情况。不知道你问题的主要部分…@MarcTalbot-谢谢你提供的信息。因此,我的覆盖率基本上是0,因为即使没有规范,定义也被覆盖。