minitest-рельсы-надо было с minitest дает мне запустить неопределенный метод `демонтаж крючки'
Помогите пожалуйста:
Я хочу, чтобы пользователь shoulda с minitest.
Это исключение, которое я получаю:
NoMethodError: undefined method `run_teardown_hooks' for #<#<Class:0x007fd42ed95490>:0x007fd42ed00c78>
/Users/boti/.rvm/gems/ruby-1.9.2-p180@search_server/gems/mocha-0.10.5/lib/mocha/integration/mini_test/version_230_to_262.rb:39:in `run'
/Users/boti/.rvm/gems/ruby-1.9.2-p180@search_server/gems/activesupport-3.2.11/lib/active_support/testing/setup_and_teardown.rb:36:in `block in run'
/Users/boti/.rvm/gems/ruby-1.9.2-p180@search_server/gems/activesupport-3.2.11/lib/active_support/callbacks.rb:425:in `_run__1339649173504478165__setup__555511959301366683__callbacks'
/Users/boti/.rvm/gems/ruby-1.9.2-p180@search_server/gems/activesupport-3.2.11/lib/active_support/callbacks.rb:405:in `__run_callback'
/Users/boti/.rvm/gems/ruby-1.9.2-p180@search_server/gems/activesupport-3.2.11/lib/active_support/callbacks.rb:385:in `_run_setup_callbacks'
/Users/boti/.rvm/gems/ruby-1.9.2-p180@search_server/gems/activesupport-3.2.11/lib/active_support/callbacks.rb:81:in `run_callbacks'
/Users/boti/.rvm/gems/ruby-1.9.2-p180@search_server/gems/activesupport-3.2.11/lib/active_support/testing/setup_and_teardown.rb:35:in `run'
Это мой гемфайл:
gem 'minitest'
gem 'minitest-should_syntax'
gem 'miniskirt'
gem 'rack-livereload'
gem 'guard'
gem 'guard-minitest'
gem 'guard-bundler'
gem 'guard-livereload'
gem 'annotate', ">=2.5.0"
gem 'guard-annotate'
gem "rb-fsevent"
gem 'database_cleaner'
gem "minitest-rails-shoulda"
gem 'sqlite3', :require => 'sqlite3'
Это мой test_helper:
ENV["RAILS_ENV"] = "test"
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
require 'minitest/autorun'
require 'minitest/should_syntax'
require 'factories/factories'
class ActionController::TestCase
include Devise::TestHelpers
end
1 ответ:
В вашем
Gemfile
укажитеgem 'shoulda-matchers', '1.4.1'
, а затем запуститеbundle update shoulda-matchers
Объяснение
Shoulda-matchers 1.4.2 ввели зависимость от bourne, которая зависит от версии mocha, которая нарушается minitest, потому что
run_setup_hooks
иrun_teardown_hooks
были удалены из minitest.Вот отчет об ошибке для shoulda-matchers, который объясняет, что происходит: https://github.com/thoughtbot/shoulda-matchers/issues/235
Если вы затронуты этой проблемой, найдите время, чтобы +1 сообщение об ошибке, так что он получает немного любви.