2010-11-29 70 views
7

我將在我的Rails3項目中使用RSpec和Factory factory。我已經安裝了工廠的女孩,但沒有找到廠區,我有這個錯誤RSpec無法從Factorygirl中找到Factorys

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

規格/工廠/ user_factory.rb:

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

規格/ 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 

感謝

+2

問題出在factory_girl上。當我使用factory_girl_rails時,一切正常。 – ThreeFingerMark 2010-11-30 08:19:49

回答

10

你有你的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

謝謝你的幫助。我在config \ application.rb中添加了這個,但是我有同樣的錯誤。 – ThreeFingerMark 2010-11-29 17:30:59

5

添加「factory_girl_rails」寶石到你的Gemfile下您:測試:開發組,具體如下:

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

在Rails 3中,您需要添加該寶石來使其工作。希望能幫助到你。

+2

......實際上,如果你願意,你可以刪除factory_girl這一行。這是factory_girl_rails的依賴項,所以會自動包含。 – 2010-12-09 06:20:49

+0

保羅的權利。你不需要這條線 – GreenPlastik 2010-12-15 05:39:29

2

你嘗試添加類似

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

? 它爲我做的

相關問題