2013-06-04 13 views
7

Zainstalowałem już klejnot rspec-rails. Kiedy uruchamiam rails g model movie showtime_date:date showtime_time:time myślę, że powinienem dostaćRspec nie generuje pliku * _spec.rb w Railsach 4 beta

invoke active_record 
     create db/migrate/20130604010556_create_movies.rb 
     create app/models/movie.rb 
     invoke rspec 
     create spec/models/movie_spec.rb 

Ale kiedy biegnę rails g model movie showtime_date:date showtime_time:time uzyskać

invoke active_record 
     create db/migrate/xxxxxxxxxxx_create_movies.rb 
     create app/models/movie.rb 
     invoke test_unit 
     create  test/models/movie_test.rb 
     create  test/fixtures/movies.yml 

Czy jest jakiś problem z moim pakiecie gem? Używam wersji beta Rails4. Czy ta wersja ma błąd lub coś innego?

BDD dla mojej aplikacji jest jak ten app/features/show_descripitons.feature

Feature: Showtime Descriptions 
    As a movie goer 
    I want to see accurate and concise showtimes 
    So that I can find movies that fit my schedule 

    @wip 
    Scenario: Show minutes for times ending with 00 
     Given a movie 
     When I set the showtime to "2013-05-04" at "2:15pm" 
     Then the showtime description should be "June 04, 2013(2pm)" 

    Scenario: Hide minutes for times ending with 00 
     Given a movie 
     When I set the showtime to "2013-05-04" at "2:00pm" 
     Then the showtime description should be "June 04, 2013(2pm)" 

i mój app/features/step_definition/showtime_descriptions.rb jest to

Given(/^a movie$/) do 
    @movie = Movie.create! 
end 

When(/^I set the showtime to "(.*?)" at "(.*?)"$/) do |date, time| 
    @movie.update_attribute(:showtime_date, Date.parse(date)) 
    @movie.update_attribute(:showtime_time, time) 
end 

Then(/^the showtime description should be "(.*?)"$/) do |showtime| 
    @movie.showtime.showtime eq(showtime) 
end 
+0

Czy na początku uruchomiłeś 'rails generate rspec: install'? –

Odpowiedz

10

powinny Kładę ten kod w config/environment.rb

config.generators do |g| 
     g.template_engine :erb 
     g.test_framework :rspec, :fixture => true, :views => false 
     g.integration_tool :rspec, :fixture => true, :views => true 
     g.fixture_replacement :factory_girl, :dir => "spec/support/factories" 
    end 
+0

Po raz pierwszy spróbowałem użyć opcji testowania pominięcia (-T, [--skip-test-unit]), że [Aaron K. ] zasugerował przy tworzeniu mojego nowego projektu szyn. To samo nie działało, dopóki nie dodałem powyższego kodu do mojego application.rb. – Jeremiah

+0

To działało świetnie, z wyjątkiem tego, że g.fixture_replacement dało w wyniku komunikat "factory_girl [nie znaleziono]" Używam factory_girl dla aktualnych specyfikacji, więc Gem jest zainstalowany i działa; nie wiem, dlaczego spowodowało to komunikat o błędzie. – Greg

+0

Przejrzyj ten https: // github.com/thoughtbot/factory_girl_rails/issues/53 i dodał factory_girl_rails do Gemfile – Greg

0

Brzmi jakbyś dodał rspec już po utworzeniu projektu Rails. Konieczne będzie usunięcie odwołania do generatora jednostki testowej. Upewnij się, że prowadzony rails g rspec:install i że poniższe nie znajduje się w config/application.rb (http://edgeguides.rubyonrails.org/generators.html#customizing-your-workflow):

g.test_framework :test_unit, fixture: true 

podczas tworzenia nowego projektu szyny można pominąć jednostki testowej z flagą -T, [--skip-test-unit].

+0

hej, jak już powiedziałeś. Śledzę ją i ponownie utworzyć nowy, ale wynik jest taki szyny g wzór filmowego showtime_date: data showtime_time: czas invoke active_record create db/migrować/20130607172805_create_movies.rb utworzyć app/models/movie.rb –

+0

@ AmritdeepDhungana wykonał swój cykl 'rails g rspec: install'? Jeśli tak, jaki był wynik? –

+0

Out było tak postępować szyny g rspec: zainstalować tworzyć .rspec stworzyć specyfikację tworzyć niespełniającego/spec_helper.rb –

3

dobrze, ja też z 4,1 do czynienia z podobnym problemem. Ale w końcu następujący bilet pomógł mi rozwiązać problem. https://github.com/rspec/rspec-rails/issues/439

Krótko mówiąc, trzeba się upewnić, że rspec-rails jest w grupie development i nie tylko w grupie test. Dzięki tej małej zmianie i bundle install, wszystkie pliki spec generowane są automatycznie.

+1

Albo możesz zrobić "RAILS_ENV = testuj szyny g model cokolwiek". –

Powiązane problemy