2010-06-17 2 views
7

Я работаю с крошечным рельсом. Rails 3, RSpec 2, Rspec-Rails2.RCov с RSpec-2

Кажется, что RSpec2 не включает спецификацию spec: rcov rake, которую имеет RSpec 1. (по крайней мере, его пока нет)

Неужели кому-нибудь повезло с rcov с rspec 2 или написанию их собственной рейк-задачи, чтобы сделать эту работу?

+0

rspec-rails-2.0.0.rc выполняет эту задачу в файле rspec rake. – wesgarrison

ответ

7

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

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 
+0

это именно то, что я закончил делать. Благодарю. – JoshReedSchramm

+3

Где это должно жить? – Aupajo

+1

@Aupajo: От JoshReedSchramm ответьте ниже, где у него была более ранняя итерация этого ответа, он положил его в '~/.rvm/rubies // lib/ruby ​​/ gems // gems/rspec-rails-2.XXXXX/lib/rspec/rails/tasks/rspec.task' – wesgarrison

0

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

1) Открыть ~/.rvm/рубины // Библиотека/рубин/камни // драгоценные камни/RSpec рельсы-2.XXXXX/Библиотека/RSpec/рельсы/задачи/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 install. Если у кого есть идея, пожалуйста, дайте мне знать.

4

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

2

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

+1

Сегодня (21.08.2012) это почти правильный ответ. В то время, когда этот вопрос задавался, rspec2 был новым, простых символов на самом деле еще не существует. – JoshReedSchramm

+2

simplecov работает только в 1.9. *. Rcov работает только в 1.8. *. Вы не можете использовать simplecov, если вы на 1.8 – yiwen