未定义的方法`use_transactional_tests =’表示#(NoMethodError)
发布时间:2020-12-17 03:29:26 所属栏目:百科 来源:网络整理
导读:我正在测试新的Rails版本5.0.0.alpha和RSpec 3.1.7但我收到错误: undefined method `use_transactional_tests=' for #RSpec::Core::Configuration:0x007fccf515e338 (NoMethodError) 在rails_helper.rb我经常使用这个,一切正常: config.use_transactional_
我正在测试新的Rails版本5.0.0.alpha和RSpec 3.1.7但我收到错误:
undefined method `use_transactional_tests=' for #<RSpec::Core::Configuration:0x007fccf515e338> (NoMethodError) 在rails_helper.rb我经常使用这个,一切正常: config.use_transactional_fixtures = true 但我收到了这个警告: DEPRECATION WARNING: use_transactional_fixtures= is deprecated and will be removed from Rails 5.0 (use use_transactional_tests= instead). (called from block in <module:FixtureSupport> at /Users/monteirobrena/.rvm/gems/ruby-2.2.2@global/gems/rspec-rails-3.1.0/lib/rspec/rails/fixture_support.rb:25) 所以,我改变了我的rails_helper.rb以使用新的方式: config.use_transactional_tests = true 现在我收到了这个错误: /Users/monteirobrena/project/spec/rails_helper.rb:34:in `block in <top (required)>': undefined method `use_transactional_tests=' for #<RSpec::Core::Configuration:0x007fccf515e338> (NoMethodError) from /Users/monteirobrena/.rvm/gems/ruby-2.2.2@global/gems/rspec-core-3.1.7/lib/rspec/core.rb:81:in `configure' from /Users/monteirobrena/project/spec/rails_helper.rb:27:in `<top (required)>' from /Users/monteirobrena/project/spec/controllers/messages_controller_spec.rb:1:in `require' from /Users/monteirobrena/project/spec/controllers/messages_controller_spec.rb:1:in `<top (required)>' from /Users/monteirobrena/.rvm/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/rspec-core-3.1.7/lib/rspec/core/configuration.rb:1105:in `load' from /Users/monteirobrena/.rvm/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/rspec-core-3.1.7/lib/rspec/core/configuration.rb:1105:in `block in load_spec_files' from /Users/monteirobrena/.rvm/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/rspec-core-3.1.7/lib/rspec/core/configuration.rb:1105:in `each' from /Users/monteirobrena/.rvm/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/rspec-core-3.1.7/lib/rspec/core/configuration.rb:1105:in `load_spec_files' from /Users/monteirobrena/.rvm/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:96:in `setup' from /Users/monteirobrena/.rvm/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:84:in `run' from /Users/monteirobrena/.rvm/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:69:in `run' from /Users/monteirobrena/.rvm/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:37:in `invoke' from /Users/monteirobrena/.rvm/gems/ruby-2.2.2@global/gems/rspec-core-3.1.7/exe/rspec:4:in `<top (required)>' from /Users/monteirobrena/.rvm/rubies/ruby-2.2.2/bin/rspec:23:in `load' from /Users/monteirobrena/.rvm/rubies/ruby-2.2.2/bin/rspec:23:in `<main>' from /Users/monteirobrena/.rvm/gems/ruby-2.2.2@global/bin/ruby_executable_hooks:15:in `eval' from /Users/monteirobrena/.rvm/gems/ruby-2.2.2@global/bin/ruby_executable_hooks:15:in `<main>' 有任何想法吗?谢谢. 解决方法
您获得的弃用警告和建议来自Rails,而不是RSpec或rspec-rails gem. rspec-rails gem实现use_transactional_fixtures =并转换并在Rails中调用相同的方法,每
https://github.com/rspec/rspec-rails/blob/3-3-maintenance/lib/rspec/rails/fixture_support.rb.它没有实现use_transactional_tests =,因此当你进行更改时,你会得到该错误消息.
在升级rspec-rails gem以支持新的Rails 5功能之前,您需要直接设置Rails配置. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |