gpt4 book ai didi

ruby - RSpec 2 的 RCov 未正确检测覆盖范围? (不是 Rails!)

转载 作者:数据小太阳 更新时间:2023-10-29 06:54:31 28 4
gpt4 key购买 nike

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

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

  • 单元测试(TDD)
  • cucumber (BDD)
  • Rspec(TDD 和 BDD)

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

我在我的 Rakefile 中设置了以下 RakeTask,用于单元测试的协方差分析:

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 报告。

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

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 行)

我错过了什么吗?


$: 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

最佳答案

我遇到了类似的问题。我 100% 确定在我运行 win RCov 时没有执行规范。但是当我禁用 RCov 时它们会这样做。

将 RSpec 降级到 2.6.0 版对我有帮助。

关于ruby - RSpec 2 的 RCov 未正确检测覆盖范围? (不是 Rails!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8886258/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com