2010-11-29 5 views
7

userò RSpec con Factory girl nel mio progetto Rails3. Ho installato in fabbrica ragazza, ma non si trova il factorys ho questo erroreRSpec non riesce a trovare Factorys da Factorygirl

Failure/Error: Factory.build(:user).should_be valid 
No such factory: user 

spec/fabbriche/user_factory.rb:

Factory.define :user do |u| 
    u.username 'otto' 
end 

spec/spec_helper.rb

ENV["RAILS_ENV"] ||= 'test' 
require File.expand_path("../../config/environment", __FILE__) 
require 'rspec/rails' 
require 'factory_girl' 

Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f} 

RSpec.configure do |config| 
    config.mock_with :rspec 
    config.fixture_path = "#{::Rails.root}/spec/fixtures" 
    config.use_transactional_fixtures = true 
end 

Gemfile:

group :development, :test do 
    gem 'webrat' 
    gem "cucumber-rails" 
    gem "rspec-rails" 
    gem "rspec" 
    gem "autotest" 
    gem 'factory_girl' 
end 

Grazie

+2

Il problema è con factory_girl. Quando uso factory_girl_rails tutto funziona bene. – ThreeFingerMark

risposta

10

Avete le seguenti righe nel tuo config\application.rb:

# Configure generators values. 
config.generators do |g| 
    g.test_framework :rspec, :fixture => true 
    g.fixture_replacement :factory_girl, :dir=>"spec/factories" 
end 
+0

Grazie per l'aiuto. Ho aggiunto questo nel config \ application.rb ma ho lo stesso errore. – ThreeFingerMark

5

Aggiungi il 'factory_girl_rails" gioiello al tuo Gemfile sotto la vostra: prova,: gruppi di sviluppo, come segue:

group :development, :test do 
    gem 'webrat' 
    gem "cucumber-rails" 
    gem "rspec-rails" 
    gem "rspec" 
    gem "autotest" 
    gem 'factory_girl' 
    gem 'factory_girl_rails' 
end 

In Rails 3, è necessario aggiungere quella gemma per farlo funzionare. Spero che sia d'aiuto.

+2

... e infatti puoi rimuovere la linea factory_girl stessa, se lo desideri. È una dipendenza di factory_girl_rails, quindi verrà inclusa automaticamente. –

+0

Paul ha ragione. Non hai bisogno di quella riga – GreenPlastik

2

Hai provato l'aggiunta di qualcosa di simile a

Dir[Rails.root.join("spec/factories/**/*.rb")].each {|f| require f} 

nel spec_helper? che lo ha fatto per me

+0

per risolverlo - l'altra soluzione non l'ha risolto – Markus