Ruby on rails 3 Rails测试错误-NameError:TestCase::支持信息信号

Ruby on rails 3 Rails测试错误-NameError:TestCase::支持信息信号,ruby-on-rails-3,unit-testing,testing,minitest,ruby-2.1,Ruby On Rails 3,Unit Testing,Testing,Minitest,Ruby 2.1,在我的Rails应用程序中,我将Ruby从1.9.3更新为2.1.0。现在,当我重新启动测试时,我得到一个错误: NameError: uninitialized constant MiniTest::Unit::TestCase::SUPPORTS_INFO_SIGNAL 以下是Gemfile中的宝石: gem 'rails' gem 'mysql2' gem 'json' gem 'jquery-rails' gem 'kaminari' gem 'therubyracer' gem 'd

在我的Rails应用程序中,我将Ruby从
1.9.3
更新为
2.1.0
。现在,当我重新启动测试时,我得到一个错误:

NameError: uninitialized constant MiniTest::Unit::TestCase::SUPPORTS_INFO_SIGNAL
以下是
Gemfile
中的宝石:

gem 'rails'
gem 'mysql2'
gem 'json'
gem 'jquery-rails'
gem 'kaminari'
gem 'therubyracer'
gem 'devise'
gem 'rak'
gem 'rails-translate-routes'
gem 'routes'

group :assets do
  gem 'sass-rails', " ~> 3.2.3"
  gem 'uglifier', ' >= 1.0.3'
end

group :development, :test do
  gem 'factory_girl_rails'
end

group :test do
  gem 'shoulda'
  gem 'database_cleaner'
  gem 'capybara'
end
以下是堆栈跟踪:

`NameError: uninitialized constant MiniTest::Unit::TestCase::SUPPORTS_INFO_SIGNAL
~/.rvm/gems/ruby-2.1.0@kalender/gems/mocha-0.10.5/lib/mocha/integration/mini_test/version_230_to_262.rb:19:in `run'`
~/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/test/unit/testcase.rb:17:in `run'
~/.rvm/gems/ruby-2.1.0@kalender/gems/activesupport-3.2.12/lib/active_support/testing/setup_and_teardown.rb:36:in `block in run'
~/.rvm/gems/ruby-2.1.0@kalender/gems/activesupport-3.2.12/lib/active_support/callbacks.rb:425:in `_run__4401979439353622961__setup__4295356768171603498__callbacks'
~/.rvm/gems/ruby-2.1.0@kalender/gems/activesupport-3.2.12/lib/active_support/callbacks.rb:405:in `__run_callback'
~/.rvm/gems/ruby-2.1.0@kalender/gems/activesupport-3.2.12/lib/active_support/callbacks.rb:385:in `_run_setup_callbacks'
~/.rvm/gems/ruby-2.1.0@kalender/gems/activesupport-3.2.12/lib/active_support/callbacks.rb:81:in `run_callbacks'
~/.rvm/gems/ruby-2.1.0@kalender/gems/activesupport-3.2.12/lib/active_support/testing/setup_and_teardown.rb:35:in `run'
~/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/minitest/unit.rb:940:in `block in _run_suite'
~/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/minitest/unit.rb:933:in `map'
~/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/minitest/unit.rb:933:in `_run_suite'
~/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/test/unit.rb:663:in `block in _run_suites'
~/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/test/unit.rb:661:in `each'
~/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/test/unit.rb:661:in `_run_suites'
~/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/minitest/unit.rb:884:in `_run_anything'
~/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/minitest/unit.rb:1092:in `run_tests'
~/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/minitest/unit.rb:1079:in `block in _run'
~/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/minitest/unit.rb:1078:in `each'
~/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/minitest/unit.rb:1078:in `_run'
~/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/minitest/unit.rb:1066:in `run'
~/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/test/unit.rb:27:in `run'
~/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/test/unit.rb:780:in `run'
~/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/test/unit.rb:372:in `block (2 levels) in autorun'
~/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/test/unit.rb:33:in `run_once'
~/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/test/unit.rb:371:in `block in autorun'

我刚刚遇到了一个与此类似或相同的bug,并且能够在本地解决它。对我来说,我有一个开始的痕迹:

/home/youruser/.rvm/gems/ruby-2.1.0/gems/mocha-0.10.5/lib/mocha/integration/mini_test/version_230_to_262.rb:19:in `run': uninitialized constant MiniTest::Unit::TestCase::SUPPORTS_INFO_SIGNAL (NameError)
这表明,当mocha试图引用一个常量时,该错误实际上发生在mocha中,该常量已从minitest版本中删除,该版本很可能与Ruby升级一起出现

对我来说,做一个
包更新摩卡
修复了这个问题

我做了一些代码探索来找出问题的具体解决方法,在mocha存储库的克隆副本上使用了“git pickaxe”(
git log-SSUPPORTS\u INFO\u SIGNAL
),看起来像是这样,所以在mocha中使用提交之后的任何东西都可以


如果升级您的mocha版本无法解决问题,请仔细查看堆栈跟踪,您应该会看到哪个库依赖于定义了SUPPORTS\u INFO\u信号的minitest导致了错误。然后查看该依赖关系的上游,看看这个问题是否得到了解决。如果没有,请将显示此行为的依赖项分叉,并将自己的修补程序推到上游。

不幸的是,它对我不起作用,我用最新的version@pukoo您能提供完整的堆栈跟踪吗?在Github/minitest上报告问题后,zenspider建议使用最新的mocha gem,因为它是一种“摩卡咖啡”虫。就我而言,我没有在我的文件中直接使用“摩卡”。但另一种宝石“水豚”对摩卡咖啡有依赖性。我也在Gemfile中声明了“mocha”Gem,它可以使用ruby 1.9.3和ruby-2.0.0-p481