2009-05-24 11 views
6

Próbuję użyć rspec w projekcie rails, który właśnie uaktualniłem do szyn 2.3.2. Zainstalowałem rspec 1.2.6 i rspec-rails 1.2.6 jako wtyczki w aplikacji.Specyfikacja rake'u nie używa środowiska rails

Mój problem polega na tym, że specyfikacje nie mają dostępu do klas aplikacji lub żadnej ze standardowych bibliotek szyn.

Najpierw musiałem podać klasę modelu Chcę przetestować za pomocą pełnej ścieżki z RAILS_ROOT ale teraz jak ładuje klasa uzyskać następujące

 
/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! 

jestem uruchomienie rspec wywołując natarcia specyfikację od root aplikacji.

Jakieś pomysły na temat tego, czego może brakować w tej sytuacji?

+0

Odkryłem, że dodanie wymaga "spec/spec_helper.rb" wydaje się rozwiązać proble m, ale na pewno jest to coś, co ma być włączone domyślnie, nie w każdym pliku? – lyallward

Odpowiedz

6

trzeba rzeczywiście należą spec_helper.rb w każdej specyfikacji pliku piszesz ....

można uruchamiać poszczególne specyfikacje ten sposób:

$ spec specs/models/person_spec.rb 

zamiast zawsze działa cały pakiet niespełniającego

+0

To jest rozwiązanie, które wypracowałem. Czuję się zbędny, więc myślę, że miałem nadzieję, że istnieje lepsze rozwiązanie. – lyallward

0

Nie użyłem specyfikacji, więc to może nie rozwiązać twojego problemu, ale jeśli piszesz swoje własne zadanie rake i potrzebujesz swojego środowiska rails, musisz o to poprosić.

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

Pozdrawiam za pomoc. Nie toczę własnych zadań rake'owych, ale mam już wygląd i już działa dość skomplikowana struktura zależności dla danego zadania. Więc nie jestem pewien, czy chcę z tym pomieszać. – lyallward

Powiązane problemy