はじめ
に私はRubyを使い始めたばかりで、言語だけでなくいくつかの開発戦略も学ぼうとしています。一種の初心者として、私はテストとビヘイビア駆動開発に集中しています。(はい、私は比較のために両方を行っています)
私が使用している小さなソフトウェアプロジェクトでは
- UnitTest(TDD)
- キュウリ(BDD)
- Rspec(TDDおよびBDD)
さまざまな場所で、実際にテストしている実際のコードの量を知るためのツールとしてRCovに遭遇しました。
Rakefile
UnitTestsのコバレージ分析のために、次の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