8

はじめ
に私はRubyを使い始めたばかりで、言語だけでなくいくつかの開発戦略も学ぼうとしています。一種の初心者として、私はテストとビヘイビア駆動開発に集中しています。(はい、私は比較のために両方を行っています)

私が使用している小さなソフトウェアプロジェクトでは

  • UnitTest(TDD)
  • キュウリ(BDD)
  • Rspec(TDDおよびBDD)

さまざまな場所で、実際にテストしている実際のコードの量を知るためのツールとしてRCovに遭遇しました。

RakefileUnitTestsのコバレージ分析のために、次の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

これは正常に機能し、で素敵な色のHTMLレポートを取得していますcoverage/tests

問題の概要
同様に、仕様のカバレッジ分析に使用する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

問題の定義
ただし、で生成されたHTMLレポートは、coverage/specどういうわけか不完全に見え、ほとんど失敗しています。

テストされたメソッド本体のいずれも、カバーされているとマークされていないため、赤でマークされています。ただし、仕様の範囲内で実行されると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
4

3 に答える 3

3

私も同じような悩みを抱えています。win RCov でスペックを実行してもスペックが実行されないことは 100% 確信しています。しかし、RCov を無効にするとそうなります。

RSpec をバージョン 2.6.0 にダウングレードすると役に立ちました。

于 2012-04-11T12:09:07.103 に答える
2

rcov を十分に早く要求していることを確認してください。

http://rubydoc.info/github/relevance/rcov/master/Rcov/CodeCoverageAnalyzerから:

分析したいコードが解析される前に (つまり、コードが読み込まれるか必要とされる前に)、'rcov' を必要とする必要があることに注意してください。-rrcov コマンドライン オプションを指定して ruby​​ を呼び出すか、次のようにします。

于 2012-02-01T12:52:33.270 に答える