【发布时间】:2016-03-06 02:12:32
【问题描述】:
我刚刚将我的应用从 Rails 4.2.0 升级到 4.2.5,突然所有我的测试(嗯,307 个中的 292 个)都失败并显示消息喜欢这个:
Failure/Error: let(:org) { create :organisation }
NoMethodError:
undefined method `[]=' for nil:NilClass
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/test_after_commit-0.4.0/lib/test_after_commit.rb:57:in `sync_with_transaction_state'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/activerecord-4.2.5/lib/active_record/persistence.rb:86:in `new_record?'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:432:in `block in make_lambda'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:227:in `call'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:227:in `block (2 levels) in halting_and_conditional'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:227:in `each'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:227:in `all?'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:227:in `block in halting_and_conditional'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:506:in `call'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:506:in `block in call'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:506:in `each'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:506:in `call'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:92:in `__run_callbacks__'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:778:in `_run_initialize_callbacks'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/activerecord-4.2.5/lib/active_record/core.rb:284:in `initialize'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/activerecord-4.2.5/lib/active_record/inheritance.rb:61:in `new'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/activerecord-4.2.5/lib/active_record/inheritance.rb:61:in `new'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/factory_girl-4.5.0/lib/factory_girl/decorator/new_constructor.rb:9:in `new'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/factory_girl-4.5.0/lib/factory_girl/decorator.rb:14:in `send'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/factory_girl-4.5.0/lib/factory_girl/decorator.rb:10:in `method_missing'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/factory_girl-4.5.0/lib/factory_girl/decorator/invocation_tracker.rb:11:in `method_missing'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/factory_girl-4.5.0/lib/factory_girl/decorator.rb:14:in `send'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/factory_girl-4.5.0/lib/factory_girl/decorator.rb:10:in `method_missing'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/factory_girl-4.5.0/lib/factory_girl/configuration.rb:15:in `block in initialize'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/factory_girl-4.5.0/lib/factory_girl/attribute_assigner.rb:48:in `instance_exec'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/factory_girl-4.5.0/lib/factory_girl/attribute_assigner.rb:48:in `build_class_instance'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/factory_girl-4.5.0/lib/factory_girl/attribute_assigner.rb:13:in `object'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/factory_girl-4.5.0/lib/factory_girl/evaluation.rb:12:in `object'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/factory_girl-4.5.0/lib/factory_girl/strategy/create.rb:9:in `result'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/factory_girl-4.5.0/lib/factory_girl/factory.rb:42:in `run'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/factory_girl-4.5.0/lib/factory_girl/factory_runner.rb:23:in `block in run'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/activesupport-4.2.5/lib/active_support/notifications.rb:166:in `instrument'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/factory_girl-4.5.0/lib/factory_girl/factory_runner.rb:22:in `run'
# /home/patrick/.rvm/gems/ruby-2.1.4@engagement-hub-rails/gems/factory_girl-4.5.0/lib/factory_girl/strategy_syntax_method_registrar.rb:20:in `block in define_singular_strategy_method'
# ./spec/controllers/api/v1/channels_controller_spec.rb:11:in `block (3 levels) in <top (required)>'
# ./spec/controllers/api/v1/channels_controller_spec.rb:12:in `block (3 levels) in <top (required)>'
# ./spec/controllers/api/v1/channels_controller_spec.rb:22:in `block (3 levels) in <top (required)>'
如您所见,我使用的是 Ruby 2.1.4、Rails 4.2.5、FactoryGirl 4.5.0 和 RSpec 3.3.0。我一直在玩这些版本——Ruby 2.2.2 没有帮助,FactoryGirl 和 RSpec 已经是最新的了;并且错误发生在 Rails >= 4.2.3 中。
Rails 版本(以及它使用的 gem)是我对存储库所做的唯一 更改,在我这样做之前一切都运行良好。有谁知道为什么会这样?
【问题讨论】:
标签: ruby-on-rails-4 rspec factory-bot