【问题标题】:Cannot run rake test Rails无法运行 rake 测试 Rails
【发布时间】:2016-05-25 13:59:10
【问题描述】:

我正在关注 Michael Hartl (chapter 3) 的 Rails 教程。但是,当我像他一样编辑 Gemfile 然后运行 ​​rake 测试时,rails 建议我输入这一行:config.web_console.development_only = false应用程序配置 文件中。我这样做并再次运行bundle exec rake test,这是错误消息:

/home/ys/workspace/sample_app/db/schema.rb doesn't exist yet. Run `rake db:migrate` to create it, then try again. If you do not intend to use a database, you should instead alter /home/ys/workspace/sample_app/config/application.rb to limit the frameworks that will be loaded.
/home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:274:in `require': cannot load such file -- guard (LoadError)
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:274:in `block in require'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:240:in `load_dependency'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:274:in `require'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/guard-minitest-2.4.4/lib/minitest/guard_minitest_plugin.rb:4:in `<top (required)>'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:274:in `require'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:274:in `block in require'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:240:in `load_dependency'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:274:in `require'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/minitest-5.8.4/lib/minitest.rb:91:in `block in load_plugins'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/minitest-5.8.4/lib/minitest.rb:85:in `each'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/minitest-5.8.4/lib/minitest.rb:85:in `load_plugins'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/minitest-5.8.4/lib/minitest.rb:114:in `run'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/minitest-5.8.4/lib/minitest.rb:56:in `block in autorun'

然后我转到rake db:migrate,然后再次运行 rake 测试:

Running via Spring preloader in process 15638
/home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:274:in `require': cannot load such file -- guard (LoadError)
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:274:in `block in require'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:240:in `load_dependency'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:274:in `require'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/guard-minitest-2.4.4/lib/minitest/guard_minitest_plugin.rb:4:in `<top (required)>'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:274:in `require'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:274:in `block in require'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:240:in `load_dependency'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:274:in `require'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/minitest-5.8.4/lib/minitest.rb:91:in `block in load_plugins'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/minitest-5.8.4/lib/minitest.rb:85:in `each'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/minitest-5.8.4/lib/minitest.rb:85:in `load_plugins'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/minitest-5.8.4/lib/minitest.rb:114:in `run'
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/minitest-5.8.4/lib/minitest.rb:56:in `block in autorun'

我只能猜测 Ruby 有问题,因为前几天我从 2.3.0 升级到 2.3.1,因为我在运行 bundle install 时,rails 控制台抱怨错误的旧版本。 那么,如何解决这个问题?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4


    【解决方案1】:

    https://github.com/guard/guard-minitest

    将保护 gem 添加到您的 gem 文件中。
    宝石“守卫”

    【讨论】:

      【解决方案2】:

      看起来这可能有效:

      1) 只需从您的 Gemfile 和 Guardfile 中移除保护弹簧即可。

      2)然后升级guard-rspec(运行bundle update guard-rspec)

      3) 设置 使用 spring 的guard-rspec(参见: https://github.com/guard/guard-rspec#options)

      发件人:https://github.com/guard/guard/issues/734

      【讨论】:

      • 天哪,我只需删除 gem 'guard-minitest' 就可以了
      • @JoelBrewer 那么为什么移除保护弹簧可以正常工作?我正在学习相同的教程,但没有遇到任何此类问题。
      • @Nirupa "guard-spring 未更新以适用于较新版本的 Guard,但它甚至不再需要,因为 guard-rspec 支持 spring。"
      • @Nirupa 你也跟着那个教程?奇怪...为什么我会遇到这样的问题
      猜你喜欢
      • 2015-04-15
      • 1970-01-01
      • 1970-01-01
      • 2015-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-06
      • 2021-02-02
      相关资源
      最近更新 更多