微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – Rails 5.1.4测试仅在测试失败时抛出NameError

当运行rails测试失败时,在5.1.4 rails应用程序中它会抛出以下NameError.

Traceback (most recent call last):
27: from -e:1:in `<main>'
26: from /Users/User/.rvm/rubies/ruby-2.5.0/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
25: from /Users/User/.rvm/rubies/ruby-2.5.0/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
24: from /Users/User/.rvm/gems/ruby-2.5.0/gems/spring-2.0.2/lib/spring/application/boot.rb:19:in `<top (required)>'
23: from /Users/User/.rvm/gems/ruby-2.5.0/gems/spring-2.0.2/lib/spring/application.rb:135:in `run'
22: from /Users/User/.rvm/gems/ruby-2.5.0/gems/spring-2.0.2/lib/spring/application.rb:135:in `loop'
21: from /Users/User/.rvm/gems/ruby-2.5.0/gems/spring-2.0.2/lib/spring/application.rb:141:in `block in run'
20: from /Users/User/.rvm/gems/ruby-2.5.0/gems/spring-2.0.2/lib/spring/application.rb:171:in `serve'
19: from /Users/User/.rvm/gems/ruby-2.5.0/gems/spring-2.0.2/lib/spring/application.rb:171:in `fork'
18: from /Users/User/.rvm/gems/ruby-2.5.0/gems/minitest-5.11.1/lib/minitest.rb:63:in `block in autorun'
17: from /Users/User/.rvm/gems/ruby-2.5.0/gems/minitest-5.11.1/lib/minitest.rb:136:in `run'
16: from /Users/User/.rvm/gems/ruby-2.5.0/gems/minitest-5.11.1/lib/minitest.rb:159:in `__run'
15: from /Users/User/.rvm/gems/ruby-2.5.0/gems/minitest-5.11.1/lib/minitest.rb:159:in `map'
14: from /Users/User/.rvm/gems/ruby-2.5.0/gems/minitest-5.11.1/lib/minitest.rb:159:in `block in __run'
13: from /Users/User/.rvm/gems/ruby-2.5.0/gems/railties-5.1.4/lib/rails/test_unit/line_filtering.rb:9:in `run'
12: from /Users/User/.rvm/gems/ruby-2.5.0/gems/minitest-5.11.1/lib/minitest.rb:319:in `run'
11: from /Users/User/.rvm/gems/ruby-2.5.0/gems/minitest-5.11.1/lib/minitest.rb:347:in `with_info_handler'
10: from /Users/User/.rvm/gems/ruby-2.5.0/gems/minitest-5.11.1/lib/minitest.rb:360:in `on_signal'
 9: from /Users/User/.rvm/gems/ruby-2.5.0/gems/minitest-5.11.1/lib/minitest.rb:320:in `block in run'
 8: from /Users/User/.rvm/gems/ruby-2.5.0/gems/minitest-5.11.1/lib/minitest.rb:320:in `each'
 7: from /Users/User/.rvm/gems/ruby-2.5.0/gems/minitest-5.11.1/lib/minitest.rb:321:in `block (2 levels) in run'
 6: from /Users/User/.rvm/gems/ruby-2.5.0/gems/minitest-5.11.1/lib/minitest.rb:334:in `run_one_method'
 5: from /Users/User/.rvm/gems/ruby-2.5.0/gems/minitest-5.11.1/lib/minitest.rb:785:in `record'
 4: from /Users/v/.rvm/gems/ruby-2.5.0/gems/minitest-5.11.1/lib/minitest.rb:785:in `each'
 3: from /Users/User/.rvm/gems/ruby-2.5.0/gems/minitest-5.11.1/lib/minitest.rb:786:in `block in record'
 2: from /Users/User/.rvm/gems/ruby-2.5.0/gems/railties-5.1.4/lib/rails/test_unit/reporter.rb:23:in `record'
 1: from /Users/User/.rvm/gems/ruby-2.5.0/gems/railties-5.1.4/lib/rails/test_unit/reporter.rb:70:in `format_rerun_snippet'
/Users/User/.rvm/gems/ruby-2.5.0/gems/railties-5.1.4/lib/rails/test_unit/reporter.rb:70:in `method': undefined method       `test_should_get_help' for class `Minitest::Result' (NameError)

但是,如果测试通过,则显示最小的报告,而不显示任何错误消息.
我尝试删除minitest-reporter gem,但NameError消息不会消失.似乎与弹簧服务器有关.
我也尝试过关闭所有弹簧ps.
关于`test_should_get_help’是一个简单的测试,尽管删除了它,但错误始终将最后的书面测试放在原位.

这是Gemfile

    source 'https://rubygems.org'

gem 'rails',                   '5.1.4'
gem 'bcrypt',                  '3.1.11'
gem 'faker',                   '1.7.3'
gem 'carrierwave',             '1.2.2'
gem 'mini_magick',             '4.7.0'
gem 'will_paginate',           '3.1.6'
gem 'bootstrap-will_paginate', '1.0.0'
gem 'bootstrap-sass',          '3.3.7'
gem 'puma',                    '3.9.1'
gem 'sass-rails',              '5.0.6'
gem 'uglifier',                '3.2.0'
gem 'coffee-rails',            '4.2.2'
gem 'jquery-rails',            '4.3.1'
gem 'turbolinks',              '5.0.1'
gem 'jbuilder',                '2.7.0'

group :development, :test do
  gem 'sqlite3', '1.3.13'
  gem 'byebug',  '9.0.6', platform: :mri
end

group :development do
  gem 'web-console',           '3.5.1'
  gem 'listen',                '3.1.5'
  gem 'spring',                '2.0.2'
  gem 'spring-watcher-listen', '2.0.1'
end

group :test do
  gem 'rails-controller-testing', '1.0.2'
  gem 'minitest-reporters',       '1.1.14'
  gem 'guard',                    '2.14.1'
  gem 'guard-minitest',           '2.4.6'
end

group :production do
  gem 'pg',  '0.20.0'
  gem 'fog', '1.42'
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

解决方法:

我找到了这个帖子:https://github.com/seattlerb/minitest/issues/730,它承诺修复MiniTest.该修复程序将在未来的Rails更新中提供,或者现在通过Edge Rails提供.

我在我的Gemfile中添加一个临时条目,将MiniTest恢复为之前的稳定版本,

# temporary fix to minitest 5.11.1 issue 
gem 'minitest', '~>5.10.3'

然后跑了

bundle update minitest

它似乎工作(但我仍然得到失败的测试).

因人而异

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐