Ruby on rails Rails控制台中的测试工厂女孩导致堆栈级别太深
我尝试将Factory_girl放入Rails应用程序中进行测试 以下是GEM文件的一部分:Ruby on rails Rails控制台中的测试工厂女孩导致堆栈级别太深,ruby-on-rails,gem,factory-bot,Ruby On Rails,Gem,Factory Bot,我尝试将Factory_girl放入Rails应用程序中进行测试 以下是GEM文件的一部分: gem 'rspec-rails', :group => [:development, :test] group :development do gem 'annotate' gem 'faker', '0.3.1', :require => false gem 'populator', '1.0.0' gem 'ruby-debug19' end group :test
gem 'rspec-rails', :group => [:development, :test]
group :development do
gem 'annotate'
gem 'faker', '0.3.1', :require => false
gem 'populator', '1.0.0'
gem 'ruby-debug19'
end
group :test do
gem "capybara"
gem 'factory_girl_rails', '~> 3.5.0'
gem 'guard-rspec'
gem 'guard-spork'
gem 'spork'
gem 'rb-inotify'
gem 'libnotify'
end
group :development, :test do
gem 'sqlite3-ruby', :require=>'sqlite3'
end
然后我在控制台中测试Factory_Girl的安装,rails c
:
例如,要调用find_definitions
方法:
Loading development environment (Rails 3.0.5)
irb(main):002:0> FactoryGirl.find_definitions
NameError: uninitialized constant FactoryGirl
from (irb):2
from /var/lib/gems/1.9.1/gems/railties-3.0.5/lib/rails/commands/console.rb:44:in `start'
from /var/lib/gems/1.9.1/gems/railties-3.0.5/lib/rails/commands/console.rb:8:in `start'
from /var/lib/gems/1.9.1/gems/railties-3.0.5/lib/rails/commands.rb:23:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
我犯了一个奇怪的错误
我做错了什么
关于信息,我使用的是Rails3.0.5和Ruby1.9.2
gem配置为:
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.7
- RUBY VERSION: 1.9.2 (2011-07-09 patchlevel 290) [i686-linux]
- INSTALLATION DIRECTORY: /var/lib/gems/1.9.1
- RUBY EXECUTABLE: /usr/bin/ruby1.9.1
- EXECUTABLE DIRECTORY: /usr/local/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-linux
- GEM PATHS:
- /var/lib/gems/1.9.1
- /home/izambard/.gem/ruby/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
您正在运行开发环境,同时在测试环境中包括FactoryGirl。如果在测试环境中运行控制台,FactoryGirl将被包括在内
RAILS_ENV=test rails c
我不太清楚为什么
在开发中需要'factory\u girl\u rails'
会导致无限递归。可能是factory girl或旧rails版本中的错误。实际上,我在spec\u helper.rb和factories.rb文件中有一个requirefactory\u girl\u rails
。我移除了Factorys.rb中的一个,它现在正在工作…:-顺便说一句:您使用的是ruby-debug19,它不再工作了。请参阅@iblue好的,谢谢你提供的信息,我会在我的项目上更新这一点。我也在考虑版本问题。尽管如此,我看到factory\u girl 3.5.0具有activesupport>=3.0.0的运行时依赖项。我使用Rails 3.0.5(activesupport=3.0.5)。所以正常情况下,它应该能工作。我理解正确吗?事实上,当我使用rails c test
时,我直接导致堆栈级别太深,控制台停止。
RAILS_ENV=test rails c