我有一个Rails 3.2应用程序的两个销售宝石的问题。一个gem是Minitest扩展,另一个是应该在其测试套件中使用Minitest扩展的代码。由于两者都在开发中,因此两者都被出售并且尚未推送到Rubygems。
为了重现这个问题,我已经引导了一个裸Rails 3.2应用并向vendor/gems
添加了两个宝石:minitest-great_expectations(从Github克隆的Minitest扩展工作)和mygem
它只报告和测试它的版本。
首先让我们尝试使用路径中的minitest-great_expectations gem:
git clone https://github.com/svoop/minitest_sandbox.git
cd minitest_sandbox/vendor/gems/mygem/
cat Gemfile # note "path:"
bundle install # note "Using minitest-great_expectations (0.0.5) from source at ../minitest-great_expectations"
ruby test/lib/mygem/version_test.rb # => test_helper.rb:6 - cannot load such file -- minitest/great_expectations (LoadError)
现在和Rubygems的minitest-great_expectations gem相同。编辑Gemfile
并使用不带"路径的行:"。
$EDITOR Gemfile # remove the "path: ..."
bundle install # note "Installing minitest-great_expectations (0.0.5)"
ruby test/lib/mygem/version_test.rb # => PASS
自安装gem以来,现在可以恢复。但是,Gemfile是否包含"路径并不重要:"或不。使用gem uninstall minitest-great_exceptions
明确卸载gem,然后再返回LoadError。
知道这里缺少什么吗?
答案 0 :(得分:1)
您应该正在运行bundle exec ruby test/lib/mygem/version_test.rb
。
路径gems是Rubygems特定于Bundler的扩展,因此正确设置加载路径需要bundle exec
。