无法在测试环境中加载宝石

时间:2014-09-02 21:24:06

标签: ruby-on-rails git bundler

  • 我的应用有效。
  • 之前我能够进行测试,现在由于某些原因我不能。
  • 从现在到现在发生的事情是我提供了activesupport(但我已经撤消了这些更改,事实上我处于完全独立/无关的分支中。)
  • 我在activesupport工作期间运行的两个我不熟悉的命令是bundle --deploymentbundle --no-deployment。再一次,我相信我解除了与这些变化相关的所有事情(至少就git status而言 - 我总是运行git status,而且我是了解所有代码库更改。)

我知道其他人有类似但不是这个问题:https://stackoverflow.com/search?q=require+cannot+load+such+file+LoadError

我正在玩这个供应商activesupportHow to vendor a modified version of active_support such that it is used in my Rails app?

当我尝试将供应商的activesupport分支推送到staging时,我遇到了麻烦: Where is 'elsewhere' in "run `bundle install` elsewhere"?

无论如何,重点是我的应用(即所有宝石显然已安装,GemfileGemfile.lock完好无损),但我无法运行测试

/Users/bsimpson/.rvm/gems/ruby-2.0.0-p481@books/gems/activesupport-4.0.5/lib/active_support/dependencies.rb:229:in `require': cannot load such file -- minitest/rails (LoadError)
  from /Users/bsimpson/.rvm/gems/ruby-2.0.0-p481@books/gems/activesupport-4.0.5/lib/active_support/dependencies.rb:229:in `block in require'
  from /Users/bsimpson/.rvm/gems/ruby-2.0.0-p481@books/gems/activesupport-4.0.5/lib/active_support/dependencies.rb:214:in `load_dependency'
  from /Users/bsimpson/.rvm/gems/ruby-2.0.0-p481@books/gems/activesupport-4.0.5/lib/active_support/dependencies.rb:229:in `require'
  from /Volumes/MyHD/Users/bsimpson/Dev/books/books/test/test_helper.rb:10:in `<top (required)>'
  from test/controllers/photos_controller_test.rb:1:in `require'
  from test/controllers/photos_controller_test.rb:1:in `<main>'

如果我对10的第test/test_helper.rb行发表评论,则会抱怨下一行require行。

dependencies.rb:229:in `require': cannot load such file -- minitest/rails/capybara (LoadError)
...
test/test_helper.rb:14:in `<top (required)>'

当我发表评论14行时,会抱怨下一行require,等等......

所以似乎在test环境中,没有看到宝石。想法?

.bundle /配置

---
BUNDLE_WITHOUT: development:test

1 个答案:

答案 0 :(得分:2)

配置BUNDLE_WITHOUT: development:test告诉Bundler不要从developmenttest组加载gem。由于这是您唯一的配置设置,因此您可以安全地删除.bundle/config文件,并且应该重新为您工作。

或者,您可以保留文件并仅删除该行。

当您运行bundle --deployment时,您实际上是否可以bundle --deployment --without development test运行?这些选项通常一起使用,并且在bundle install文件中记住传递给bundle(或install而没有子命令的选项,默认为bundle/.config)。这些选项在显式删除之前是“粘性的”,因此如果您使用--without标记一次,则需要编辑该文件以使这些组恢复。

另请注意,.bundle/config通常会从git中排除,因此检查git status不会告诉您它是否发生了变化。这些设置通常取决于机器,因此最好将其从git中排除。