ruby - 针对已编译的 ruby​​ 运行

标签 ruby

我想为 ruby​​-core 做贡献,我已经检查了源代码,构建了它,现在我想从测试文件夹针对我构建的 ruby​​ 版本运行测试。

我遇到了麻烦,我已经包含了 ruby​​ 查找库的本地路径,但它找不到线程...

./ruby -I./lib -I. -I.ext/common test/socket/test_socket.rb

我刚刚得到:

~/ruby/lib/rubygems.rb:9:in `require': cannot load such file -- thread (LoadError)

知道我做错了什么吗?

最佳答案

您似乎没有正确引用目录。

假设您已经克隆了 the Ruby GitHub repo进入 ~/ruby 并且你已经运行了 ./configure --prefix=~/ruby-2.5.1,然后是 makemake install,这样你的 Ruby 二进制文件就是文件 ~/ruby-2.5.1/bin/ruby

如果您的 shell 当前在目录 ~/ruby-2.5.1/bin 中,那么正确的输入命令是:

./ruby -I~/ruby/lib -I~/ruby -I~/ruby/ext/common ~/ruby/test/socket/test_socket.rb

请注意,由于您的工作目录是 ~/ruby-2.5.1/bin,因此您无法使用 引用 ~/ruby 中的 Ruby 源代码././ 表示the relative path to the current directory .

现在的输出应该是:

Loaded suite ~/ruby/test/socket/test_socket
Started
....................................
Finished in 10.26308 seconds.
36 tests, 115 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

您当时使用的 Ruby 版本可能是 Ruby 2.2(2014 年 12 月 25 日发布),但同样的答案适用于该版本,因为目录结构在那时和 2.5 之间没有变化,包括源代码和用于编译和安装的二进制版本。

关于ruby - 针对已编译的 ruby​​ 运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28743991/

相关文章:

ruby - 为什么我会看到这两个几乎相同的 Ruby 正则表达式模式的不同结果,为什么一个匹配我认为不应该匹配的内容?

ruby-on-rails - Rails 4 erb Ruby 什么都不返回

ruby-on-rails - 如何在 Ruby on Rails 中将一组保留字符替换为 ""?

ruby-on-rails - 如何检查关联型号

ios - RubyMotion 和指针

ruby-on-rails - Ruby 中属性和 base_attributes 之间的区别?

ruby - 如何让 Sinatra 通过 HTTPS/SSL 工作?

ruby - 从用户名生成 rgb 颜色(以可重复的方式)

Ruby 输出 Unicode 字符

ruby - 何时使用 'if __FILE__ == $PROGRAM_NAME'