minitest-rails-shoulda с minitest дает мне неопределенный метод `run_teardown_hooks'

Помогите, пожалуйста:

Я хочу, чтобы пользователь должен был использовать 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

person Boti    schedule 15.02.2013    source источник
comment
Вы только что обновились с Rails 3.2.11 до 3.2.12?   -  person kurt165749    schedule 15.02.2013
comment
о нет...спасибо попробую...   -  person Boti    schedule 16.02.2013


Ответы (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.

Вот отчет об ошибках для проверки соответствия, который объясняет, что происходит: https://github.com/thoughtbot/shoulda-matchers/issues/235

Если вы столкнулись с этой проблемой, найдите минутку, чтобы добавить +1 к сообщению об ошибке, чтобы оно получило немного любви.

person BrendanDean    schedule 19.02.2013