Я тестирует новые Rails версии 5.0.0.alpha
и RSpec 3.1.7
, но я получаю сообщение об ошибке:неопределенный метод `use_transactional_tests =» для # <RSpec :: Основной :: Конфигурация: 0x007fccf515e338> (NoMethodError)
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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/bin/ruby_executable_hooks:15:in `eval'
from /Users/monteirobrena/.rvm/gems/[email protected]/bin/ruby_executable_hooks:15:in `<main>'
Любые идеи? Спасибо.
Можете ли вы объяснить, какие строки мне нужно удалить, а какие строки мне нужно добавить в этом случае? – asiniy
Для тех, кто находит это сообщение в 2018 году: я обновляю Rails 4 Engine до Rails 5.1 и для решения этой ошибки я заменил все вхождения «use_transactional_fixtures» на «use_transactional_tests». За исключением внутри /spec/rails_helper.rb, которому все еще нужны «use_transactional_fixtures». Тесты RSpec теперь успешно выполняются. – Chris