2010-06-17 4 views
7

Je travaille avec un peu d'une application de bordures saignantes. Rails 3, RSpec 2, Rspec-Rails2.RCov avec RSpec-2

Il semble que RSpec2 n'inclue pas la spécification: rcov rake task que RSpec 1 a. (du moins, il n'y est pas encore)

Quelqu'un a-t-il eu de la chance en utilisant rcov avec rspec 2, ou en écrivant sa propre tâche de rake pour que cela fonctionne?

+0

rspec-rails-2.0.0.rc a cette tâche dans le fichier rspec rake. – wesgarrison

Répondre

7

Ou depuis vos rails de roulement utilisent les rails drapeau:

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

c'est exactement ce que j'ai fini par faire. Merci. – JoshReedSchramm

+3

Où est-ce censé vivre? – Aupajo

+1

@Aupajo: De JoshReedSchramm réponse ci-dessous où il avait une itération plus tôt de cette réponse, il l'a mis dans '~/.rvm/rubies // lib/ruby ​​/ gems// gems/rspec-rails-2.XXXXX/lib/rspec/rails/tasks/rspec.task' – wesgarrison

0

est venu avec cette -

1) Ouvrir ~/.rvm/lib // rubis/rubis/gemmes // gemmes/rspec-rails-2.XXXXX/lib/rspec/rails/tâches/rspec .task dans votre éditeur préféré.

2) Ajouter cette tâche râteau

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

Un problème exceptionnel. il exécute rspec sur toutes les spécifications dans mon dossier d'installation de rvm et le projet dans lequel je suis quand j'exécute la tâche. Je n'arrive pas à comprendre comment exclure tous ces tests d'installation de rvm. Si quelqu'un a une idée s'il vous plaît faites le moi savoir. Essayez de passer des options pour exclure le répertoire de la gemme.

4

Si vous arrive d'être sur Ruby 1,9x, je viens de recevoir CoverMe (une lib rcov-ish qui fonctionne sous 1.9) de travail. Snappy et fonctionne hors de la boîte w/RSpec - à peu près une configuration plug-n-play. Il fait silencieusement votre/couverture des choses chaque fois que vous exécutez rake: spec. Je pense que je le mentionnerais depuis que je cours 1.9.2preview3 sur mes trucs de pointe et il est possible que vous rencontriez quelques problèmes de 1.9 si vous l'utilisez.

2

Nous utilisons simplecov au travail, et le trouvent facile et efficace. Je trouve que c'est une solution plus propre que de modifier la source rspec directement, surtout quand vous avez des serveurs CI à s'inquiéter.

+1

Aujourd'hui (21/08/2012) c'est à peu près la bonne réponse.Au moment où cette question a été posée, rspec2 était nouveau, simplecov n'existait pas encore. – JoshReedSchramm

+2

simplecov ne fonctionne que dans 1.9. *. Rcov ne fonctionne que dans 1.8. *. Vous ne pouvez pas vraiment utiliser simplecov si vous êtes sur 1.8 – yiwen

Questions connexes