2009-05-24 4 views
6

J'essaie d'utiliser rspec dans un projet de rails que je viens de mettre à jour 2.3.2. J'ai installé rspec 1.2.6 et rspec-rails 1.2.6 en tant que plugins dans l'application.spécification de rake n'utilisant pas l'environnement des rails

Mon problème est que les spécifications n'ont pas accès à mes classes d'application ou à l'une des bibliothèques standard de rails.

Tout d'abord je devais préciser la classe modèle que je veux tester en utilisant le chemin complet de RAILS_ROOT, mais maintenant il charge la classe que je reçois le texte suivant

 
/app/models/person.rb:1: uninitialized constant ActiveRecord (NameError) 
     from ./spec/models/person_spec.rb:1:in `require' 
    from ./spec/models/person_spec.rb:1 
    from /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb:15:in `load' 
    from /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb:15:in `load_files' 
    from /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb:14:in `each' 
    from /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb:14:in `load_files' 
    from /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/options.rb:99:in `run_examples' 
    from /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/command_line.rb:9:in `run' 
    from /Users/law/Projects/roster/vendor/plugins/rspec/bin/spec:4 
rake aborted! 

Je lance rspec en appelant spec de coupe de la racine de l'application.

Des idées sur ce qui pourrait manquer dans cette situation?

+0

J'ai découvert l'ajout require 'spec/spec_helper.rb' semble résoudre le problème m, mais sûrement c'est quelque chose qui est censé être inclus par défaut, pas dans tous les fichiers? – lyallward

Répondre

6

vous devez inclure en effet le spec_helper.rb dans chaque fichier spec que vous écrivez ....

Vous pouvez exécuter les spécifications individuelles de cette façon:

$ spec specs/models/person_spec.rb 

au lieu de toujours courir toute la suite de spécifications

+0

C'est la solution que j'ai élaborée. Cela semble redondant alors j'imagine que j'espérais qu'il y avait une meilleure solution là-bas. – lyallward

0

Je n'ai pas utilisé les spécifications, cela ne résoudra peut-être pas votre problème, mais si vous écrivez votre propre tâche de râteau et avez besoin de votre environnement de rails, vous devez le demander.

task(:task_name => :environment) do 
    # Task Implementation Here 
end 
+0

Bravo à l'aide. Je ne suis pas en train de lancer mes propres tâches de rake, mais j'ai déjà jeté un coup d'œil et il existe déjà une structure de dépendance assez compliquée pour la tâche en question. Donc je ne suis pas sûr de vouloir jouer avec. – lyallward

Questions connexes