Пропуск файлов в spec/ при запуске rcov с RSpec 2.5

При беге rake spec:rcov для приложения Rails 3 файлы в spec/ каталог включается в статистику покрытия, но я не хочу, чтобы они были. Я хочу статистику покрытия только для моего реального заявления.

В старых версиях RSpec это можно было настроить с помощью spec/rcov.opts файл со строкой --exclude "spec/*" но кажется, что файл больше не читается Rspec 2. Я попытался создать .rcov файл с spec/spec.opts изменился на .rspec, но это тоже не читалось.

Я нашел некоторую документацию о том, как это сделать при определении задачи rake, но я бы предпочел не перезаписывать предоставленную задачу rake - похоже, это должно быть то, что другие люди тоже пытались сделать.

Как я могу настроить файлы, которые исключены из статистики покрытия?

Для справки, версии всех соответствующих драгоценных камней, которые я использую:

rails (3.0.5)
rake (0.8.7)
rcov (0.9.9)
rspec (2.5.0,)
rspec-core (2.5.1)
rspec-expectations (2.5.0,)
rspec-mocks (2.5.0)
rspec-rails (2.5.0)

1 ответ

Решение

Из файла обновления RSpec:

В RSpec-1 задача rake будет читать параметры rcov из rcov.opts файл. Это игнорируется RSpec-2. Параметры RCov теперь устанавливаются непосредственно в задаче Rake:

    RSpec::Core::RakeTask.new(:rcov) do |t|
      t.rcov_opts =  %q[--exclude "spec"]
    end

Осматривая rspec-rails Исходный код, который я нашел, библиотека определяет :rcov задача, и это, кажется, не исключает папку rspec.

desc "Run all specs with rcov"
RSpec::Core::RakeTask.new(:rcov => spec_prereq) do |t|
  t.rcov = true
  t.pattern = "./spec/**/*_spec.rb"
  t.rcov_opts = '--exclude /gems/,/Library/,/usr/,lib/tasks,.bundle,config,/lib/rspec/,/lib/rspec-'
end

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

Другие вопросы по тегам