我想为 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
,然后是 make
和 make 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/