ruby - 如何要求正确版本的测试/单元

标签 ruby kubuntu

我试图要求 test/unit 的新版本(即不是与 ruby​​ 捆绑的版本) .根据 instructions我用 gem i test-unit 安装它.但是现在当我需要 test/unit我似乎需要旧版本。例如,我没有方法 Test::Unit.at_start .即使我明确要求新的 test/unit 的完整路径,也会发生这种情况。安装。

我有什么办法可以调查正在加载哪些符号以及为什么?

最佳答案

由于 Ruby 附带了 test/unit 的实现(它实际上是一个 Minitest 兼容性包装器)调用 require 'test/unit'将加载该版本,因为它已经在加载路径上。调用require '/absolute/path/to/test/unit'将加载新文件,但是当该文件调用例如require 'test/unit/testcase它将从 stdlib 加载文件,从而产生混合类(所以不要这样做)。

您需要做的是使用 gem method 激活 gem在你面前require它。这将确保 gem lib 路径在 stdlib 之前的加载路径上,所以 require将首先找到这些文件。

gem 'test-unit'     # You can also pass a specific version as a second
                    # argument to `gem` if you want.

require 'test/unit' # This will find the gem version.

# Now the gem version will be loaded.

关于ruby - 如何要求正确版本的测试/单元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24003388/

相关文章:

ruby-on-rails - 我应该在Heroku上部署Ruby on Rails应用程序吗

javascript - 用于 ip 验证的正则表达式

geany - 你如何让 Execute 在 Geany 中做任何事情?

Kubuntu 15.04 如何永久编辑 dolphin 或 yakuake 个人资料

ruby - 如何通过 Gemfile 到 "gem install nokogiri -- --use-system-libraries"

ruby - IntelliJ Idea Ultimate 红色下划线 Ruby shorthand hash literal

django - 如果使用 cron 执行 SyntaxError,如果手动执行则 OK

ubuntu - 哪个 webkit qt 版本在 kubuntu 11.10 上编译

ruby - ruby gem 'gamebox' 的“捆绑”问题