首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RCov for RSpec 2没有正确检测覆盖范围吗?(不是铁轨!)

RCov for RSpec 2没有正确检测覆盖范围吗?(不是铁轨!)
EN

Stack Overflow用户
提问于 2012-01-16 21:05:48
回答 3查看 1.2K关注 0票数 8

前言

我刚刚开始学习Ruby,我不仅尝试学习Ruby语言,而且还尝试学习一些开发策略。作为一个初学者,我专注于测试和行为驱动的开发。(是的,我做这两件事都是为了比较)

在我正在使用的小型软件项目中

  • UnitTest (TDD)
  • Cucumber (BDD)
  • Rspec (TDD and BDD)

在不同的地方,我遇到了RCov作为一种工具,用来告诉我实际测试了多少代码。

我在Rakefile中设置了以下Rakefile,用于对UnitTests进行covarage分析:

代码语言:javascript
复制
desc "Run RCov to get coverage of UnitTests"
Rcov::RcovTask.new(:rcov_units) do |t|
  t.pattern = 'tests/**/tc_*.rb'
  t.verbose = true
  t.rcov_opts << "--html"
  t.rcov_opts << "--text-summary"
  t.output_dir = "coverage/tests"
end

这很好,我在coverage/tests中得到了一个颜色不错的HTML。

问题介绍

类似地,我为RakeTasks编写了以下RCov,用于对规范的覆盖率分析:

代码语言:javascript
复制
desc "Run RCov to get coverage of Specs"
Rcov::RcovTask.new(:rcov_spec) do |t|
  t.pattern = 'spec/**/*_spec.rb'
  t.verbose = true
  t.rcov_opts << "--html"
  t.rcov_opts << "--text-summary"
  t.output_dir = "coverage/spec"
end

问题定义

但是,在coverage/spec中生成的HTML看起来有些不完整,而且几乎失败。

没有一个被测试的方法主体被标记为覆盖的,因此是红色的。但是,我100%肯定它们是在规范中执行的。只有def method_name(args)class ClassName行被标记为“绿色”。(以及使用attr_reader :instance_variable的行)

我是不是遗漏了什么?

代码语言:javascript
复制
$: ruby --version  
ruby 1.8.7 (2011-02-18 patchlevel 334) [x86_64-linux]

$: rspec --version  
2.8.0

$: rcov --version  
rcov 0.9.11 2010-02-28

$: rake --version  
rake, version 0.9.2
EN

回答 3

Stack Overflow用户

发布于 2012-04-11 12:09:07

我也遇到了类似的麻烦。我100%确信,当我运行它们时,它们不会被执行,从而赢得RCov。但当我禁用RCov时,他们会这么做。

将RSpec降级到2.6.0版本帮助了我。

票数 3
EN

Stack Overflow用户

发布于 2012-02-01 12:52:33

确保您需要足够早的rcov。

来自http://rubydoc.info/github/relevance/rcov/master/Rcov/CodeCoverageAnalyzer

注意,在分析要分析的代码之前(即在加载或需要之前),您必须要求'rcov‘。您可以使用-rrcov命令行选项调用ruby,也可以只调用:

票数 2
EN

Stack Overflow用户

发布于 2017-04-05 06:00:40

我修正了这一点,增加了:

RSpec::Core::Runner.autorun

在我的规范文件的底部;甚至与rspec 2.9一起工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8886258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档