Ruby on rails Rails控制台中的测试工厂女孩导致堆栈级别太深

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

我尝试将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 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文件中有一个require
factory\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