【问题标题】:Bundler how to require gems separately in Gemfile just in one file?Bundler 如何将 Gemfile 中的 gems 单独放在一个文件中?
【发布时间】:2014-03-11 10:09:59
【问题描述】:

我在 rspec 和 mocha 之间存在冲突(rspec 没有使用 mocha,但其他 minitest 测试是)。

如果我将 mocha 放入我的 gemfile(即使使用 require: false),它也会被 activesupport/test_case.rb:15 加载

silence_warnings { require 'mocha/setup' }

这会导致 rspec 出错。

所以,我只想在我的系统 gem 中的 test_setup 文件中使用它,但我不知道如何在 bundler 之外加载 gem。

欢迎其他关于如何让这些宝石发挥出色的想法。

【问题讨论】:

  • 为什么要混合使用 rspec 和 minitest?
  • 只是为了让我的生活变得艰难。

标签: ruby rubygems bundler


【解决方案1】:

您可以在Gemfile: http://bundler.io/v1.3/groups.html 中使用群组

需要特定组中的宝石,注意宝石之外的 命名组在 :default 组中

Bundler.require(:default, :development)  

需要默认宝石,以及一组中的宝石 命名与当前 Rails 环境相同

Bundler.require(:default, Rails.env)  

限制宝石组 您要添加到加载路径。只有这些组中的宝石才会 需要的

require 'rubygems'
require 'bundler'
Bundler.setup(:default, :ci)
require 'nokogiri'

【讨论】:

  • mocha 似乎仍然需要(能够),即使我将它放在一个名为 :foo 的组中
【解决方案2】:

你能安装 gem 并要求它吗?

$ gem install my_gem

在测试文件中:

require 'full/path/to/my_gem.rb'

【讨论】:

  • 这不起作用,因为 mocha.rb 中的要求失败。
猜你喜欢
  • 2012-08-25
  • 2011-03-25
  • 1970-01-01
  • 2013-04-10
  • 1970-01-01
  • 2019-07-16
  • 1970-01-01
  • 1970-01-01
  • 2017-11-18
相关资源
最近更新 更多