2013-06-04 13 views
7

Ho già installato rspec-rails gem. Quando eseguo rails g model movie showtime_date:date showtime_time:time penso, dovrei ottenereRspec non genera file * _spec.rb in Rails 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 

Ma quando corro rails g model movie showtime_date:date showtime_time:time ottengo

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 

Esiste un problema con il mio pacchetto gemma? Sto usando Rails4 beta. Questa versione ha errori o qualcos'altro?

Il BDD per la mia app è come questo 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)" 

e il mio app/features/step_definition/showtime_descriptions.rb è questo

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

Hai eseguito 'rails genera rspec: install' all'inizio? –

risposta

10

dovrei mettere il mio questo codice in config/application.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

Ho provato per la prima volta l'opzione omit test unit (-T, [--skip-test-unit]) che [Aaron K ] suggerito durante la creazione del mio nuovo progetto di rotaie. Questo da solo non ha funzionato fino a quando ho aggiunto il codice sopra al mio application.rb. – Jeremiah

+0

Questo ha funzionato benissimo tranne che g.fixture_replacement ha dato come risultato il messaggio "factory_girl [non trovato]" Uso factory_girl per le specifiche attuali in modo che Gem sia installato e funzioni; non sono sicuro del motivo per cui è stato visualizzato un messaggio di errore. – Greg

+0

Recensito questo https: // github.com/thoughtbot/factory_girl_rails/issues/53 e aggiunto factory_girl_rails a Gemfile – Greg

0

Suona come si è aggiunto RSpec dopo aver già creato il progetto rotaie. Sarà necessario rimuovere il riferimento del generatore dell'unità di test. Assicurarsi di aver eseguito rails g rspec:install e che la segue non è nel vostro config/application.rb (http://edgeguides.rubyonrails.org/generators.html#customizing-your-workflow):

g.test_framework :test_unit, fixture: true 

Quando si crea un nuovo rotaie progetto È possibile omettere unità di prova con la bandiera -T, [--skip-test-unit].

+0

ehi, come hai detto tu. Lo seguo e ancora una volta a creare uno nuovo, ma il risultato è come questo rails g modello film showtime_date: Data showtime_time: ora invoke active_record creano db/migrate/20130607172805_create_movies.rb creare app/modelli/movie.rb –

+0

@ AmritdeepDhungana ha eseguito la tua corsa 'rails g rspec: install'? Se sì, qual è stato l'output? –

+0

l'out era come seguire rotaie g RSpec: installare creare .rspec creare spec creare spec/spec_helper.rb –

3

Beh, ho anche affrontato un problema simile con 4.1. Ma alla fine, il biglietto seguente mi ha aiutato a risolvere il problema. https://github.com/rspec/rspec-rails/issues/439

In breve, è necessario fare in modo che rspec-rails è nel gruppo development e non solo nel gruppo test. Con quel piccolo cambiamento e bundle install, ho ottenuto tutti i file spec generati automaticamente.

+1

Oppure si potrebbe fare 'RAILS_ENV = test rails g model qualunque'. –

Problemi correlati