Предисловие
Я только начал изучать Ruby и пытаюсь изучить не только язык, но и некоторые стратегии разработки. Как новичок, я концентрируюсь на разработке, основанной на тестировании и поведении. (да, я делаю и то, и другое для сравнения)
В моем небольшом программном проекте я использую
В разных местах я встречал 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