RCov для RSpec 2 неправильно определяет покрытие? (не Rails!)

Предисловие
Я только начал изучать Ruby и пытаюсь изучить не только язык, но и некоторые стратегии разработки. Как новичок, я концентрируюсь на разработке, основанной на тестировании и поведении. (да, я делаю и то, и другое для сравнения)

В моем небольшом программном проекте я использую

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

В разных местах я встречал RCov как инструмент, сообщающий мне, какую часть моего реального кода я действительно тестирую.

Я установил следующий RakeTask в моем Rakefile для коваражного анализа UnitTests:

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-отчет в покрытии / тестах .

Введение в проблему
Аналогично. Я написал следующие RakeTasks для RCov, которые будут использоваться для анализа покрытия моих спецификаций:

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 в охват / спецификация выглядит как-то неполно и почти не получилось.

Ни один из протестированных методов не отмечен как покрытый и, следовательно, красный. Однако я на 100% уверен, что они выполнены в соответствии со спецификациями. Только строки def имя_метода (аргументы) и 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
8
задан Torbjörn 16 January 2012 в 21:05
поделиться