2012-02-03 43 views
2

背景:运行Rails 3.2,Cucumber 1.1.4和SimpleCov 0.5.4。SimpleCov不覆盖内部def /方法

我们已经完成了我们所有的Cucumber规格的传递,代码应该被覆盖。但奇怪的是,当我们检查由SimpleCov生成的Cucumber覆盖报告时,方法/ 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 

任何帮助,将这么多的赞赏!

谢谢。

+0

类的名称,模块名称和存取器声明是在第一次加载类时自动分析的。如果你创建了一个类,然后运行那些除了加载类都什么都不做的测试,你会看到同样的事情。不知道你的问题的主要部分... – 2012-02-03 18:00:09

+0

@MarcTalbot - 感谢您的信息。所以,我的覆盖率基本上是0,因为即使没有规格,定义也会被覆盖。 – 2012-02-03 18:05:43

回答

2

我想我现在知道发生了什么。我的黄瓜功能/步骤不是直接测试代码,而是通过浏览器进行测试(使用水豚)。所以,覆盖范围可能不会贯穿代码(控制器/模型)。

如果那是真的,是否有补救措施?我不想/需要在我的黄瓜中提到控制器/模型......而是从用户的角度(浏览器)进行测试。