RC ов с RSpec-2

Я работаю с небольшим приложением рельсов. Rails 3, RSpec 2, Rspec-Rails2.

Кажется, что RSpec2 не включает в себя задачу rake spec:rcov, которая есть у RSpec 1. (по крайней мере, это еще не там)

Кому-нибудь повезло, запустив rcov с rspec 2 или написав свое собственное грабли для этой работы?

4 ответа

Решение

Попробуйте передать опции, чтобы исключить каталог gem. Или, так как ваши бегущие рельсы используют флаг рельсов:

desc  "Run all specs with rcov"
RSpec::Core::RakeTask.new(:rcov => spec_prereq) do |t|
  t.rcov = true
  t.rcov_opts = %w{--rails --exclude osx\/objc,gems\/,spec\/,features\/}
end

Если вы оказались на Ruby 1.9x, я только что получил CoverMe (библиотека rcov-ish, которая работает под 1.9). Snappy и работает из коробки с RSpec - в значительной степени подключи и играй настройки. Он просто тихо делает ваш материал для покрытия каждый раз, когда вы запускаете rake:spec. Думаю, я бы упомянул об этом, так как я запускаю 1.9.2preview3 на своем новейшем материале, и, возможно, вы столкнетесь с некоторыми проблемами 1.9, если будете его использовать.

Мы используем simplecov на работе, и находим это легко и эффективно. Я считаю, что это более чистое решение, чем непосредственное изменение исходного кода rspec, особенно когда у вас есть проблемы с CI-серверами.

Придумали это -

1) Откройте ~/.rvm/rubies//lib/ruby ​​/gems//gems/rspec-rails-2.XXXXX/lib/rspec/rails/tasks/rspec.task в вашем любимом редакторе.

2) Добавить это задание с граблями

desc  “Run all specs with rcov”
RSpec::Core::RakeTask.new(:rcov => spec_prereq) do |t|
  t.rcov = true
end

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

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