2011-04-08 13 views
8
ruby-1.9.2-p180 :007 > Factory.define :user do |user| 
ruby-1.9.2-p180 :008 >  user.email     "[email protected]" 
ruby-1.9.2-p180 :009?>  user.password    "foobar" 
ruby-1.9.2-p180 :010?>  user.password_confirmation "foobar" 
ruby-1.9.2-p180 :011?> end 
NameError: uninitialized constant Factory 

मेरे Gemfile:रेल 3 + FactoryGirl: NameError: अप्रारंभीकृत निरंतर फैक्टरी

group :test do 
    gem "rspec-rails" 
    gem 'webrat', '0.7.1' 
    gem 'spork', '0.9.0.rc4' 
    gem 'factory_girl_rails' 
end 

यहां तक ​​कि कठिन ऐसा लगता है मैं सब कुछ है के रूप में यह होना चाहिए, मुझे लगता है कि त्रुटि प्राप्त हो रही। मैं भी कारखानों। आरबी बनाया है।

धन्यवाद

उत्तर

10

मुझे लगता है कि आप विकास पर्यावरण में कंसोल में आज़माएं। लेकिन आप फैक्टरी मणि केवल परीक्षण पर्यावरण में जोड़ते हैं।

आप अपने Gemfile में विकास उपयोग में Factory_girl के लिए उपयोग करना चाहते हैं:

group :test, :development do 
    gem 'factory_girl_rails' 
end 

या यदि आप अपने फैक्टरी परीक्षण परिवेश में अपने कंसोल लॉन्च का परीक्षण करना चाहते हैं:

rails c test 
2

हम एक ऐसी ही समस्या थी हमारे अंत में, रेक स्पेक अनियमित स्थिर फैक्टरीगर्ल त्रुटि के साथ यादृच्छिक रूप से विफल रहा प्रतीत होता था। त्रुटि यादृच्छिक थी -> आ रही है और जा रही है। हम आधे दर्जन गिट वापस आ गए और इसे हल करने के लिए प्रतिबद्ध हो गए। अंत में यह एक मूर्ख गलती थी।

मौलिक समस्या यह है कि RAILS_ENV विकास पर सेट है। जब आप रेक स्पेक चलाते हैं तो इसे परीक्षण पर सेट करने की आवश्यकता है।

द्वारा पता:

  1. कुछ बनाना है कि हम RAILS_ENV परीक्षण वातावरण में रेक कल्पना चल रहे हैं और इसके निर्यात/ठीक से sourced। हमारे पर्यावरण को कभी भ्रमित करने के लिए, हमने वर्तमान env दिखाने के लिए zsh $ RPROMPT env चर को संशोधित किया।

    निर्यात RPROMPT = "[% {$ fg_no_bold [पीला]%} $ RAILS_ENV% {$ reset_color%}]"

  2. कल्पना माणिक फ़ाइलें एक बेहतर त्रुटि संदेश दिया FactoryGirl आवश्यकता होती है। कम से कम rspec रन बनायेगा, बस पर्यावरण के गलत होने पर इस तरह से असफल हो गया। हमने यह सुनिश्चित करने के लिए हमारे gemfile को भी अपडेट किया है कि factory_girl_rails और factory_girl दोनों को विकास और परीक्षण के लिए लोड किया गया था।

  3. अब हम उचित RAILS_ENV सेट के साथ समर्पित टर्मिनल में मणि गार्ड का उपयोग करके आरपीसीईसी चलाते हैं।

यह उन गॉथस में से एक है।

हम रूबी 1.9.3, रेल 3.2.9, रुपेक 2.12, factory_girl 4.1 चला रहे हैं।

+0

ओएमजी मैं भूल गया कि मेरे पास यह सेट था! – Chloe

0

तुम भी Factory.define FactoryGirl.define को यह उदाहरण

FactoryGirl.define do 
    factory :user do 
    name 'John Doe' 
    date_of_birth { 21.years.ago } 
    end 
end 

में factory_girl documentation

2

मैं भी इस जबकि में भाग मैं हार्टल ट्यूटोरियल कर रहा था से बदलना चाहिए, जैसे।

आप "Spork" का उपयोग कर रहे अपने परीक्षण में तेजी लाने के लिए और इसे पृष्ठभूमि में चल रहा है जब आप FactoryGirl कोड जोड़ने, तो आप इसे रोकने के लिए और उसे पुन: प्रारंभ करने की आवश्यकता होगी।

संबंधित मुद्दे