你应该要求'minitest/autorun'代替.在轨道上的红宝石

use*_*r88 11 ruby-on-rails

我正在使用rails上的ruby创建一个应用程序:

创建用户后,为了验证我在以下命令下运行的用户:

$ bundle exec rake db:migrate
$ bundle exec rake test:prepare
Run Code Online (Sandbox Code Playgroud)

这两个命令都在rails命令行上正常运行,但是当我运行以下命令时:

$ bundle exec rspec spec/models/user_spec.rb
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Warning: you should require 'minitest/autorun' instead.
Warning: or add 'gem "minitest"' before 'require "minitest/autorun"'
Run Code Online (Sandbox Code Playgroud)

我正在使用的4.1.1版本rails.我不明白为什么会这样.请建议我,等待你的回复.谢谢.

Chr*_*son 12

后代的注释多于任何内容,但如果您使用的是旧版本的shoulda-matchers,也会发生此问题.你可以看到一些解决这个讨论他们的Github上回购这里,或在RSpec的护栏回购这里.

通过运行更新shoulda-matcher bundle update shoulda-matchers.您想要最新版本(或至少2.6.2),此消息应该消失.

  • 将shoulda-matchers更新到最新版本解决了这个问题.谢谢! (2认同)

cyb*_*org 7

在'Gemfile'中包含minitest gem并运行bundle install

gem install 'minitest'
Run Code Online (Sandbox Code Playgroud)

然后 bundle install