我想要求:
PROJECT_DIR/lib/shrt.rb
从:
PROJECT_DIR/test/shrt_test.rb
我试过了:
require File.expand_path('.././lib/shrt.rb')
# and
require './lib/shrt.rb'
# and
require_relative '../lib/shrt.rb'
但是它给出了一个错误,指出它无法加载shrt.rb
中lib/
文件中所需的文件。在PROJECT_DIR/
中,我通过Rake运行了一个Ruby测试文件:
ruby 'test/shrt_test.rb'
知道我做错了什么吗?
答案 0 :(得分:1)
的作用:
require './lib/shrt.rb'
不行吗?我总是要求项目中的文件。
答案 1 :(得分:0)
我需要按以下方式要求文件:
require './lib/shrt/version'
require './lib/shrt/client'
...在我试图在测试文件中要求的文件中。我使用require_relative '../lib/shrt'
要求该文件。
编辑但是现在,当我rake install
宝石时,我正在使用Bundler并运行它,我得到`require': cannot load such file -- ./lib/shrt/version (LoadError)
。
编辑2 通过require_relative
文件require
而非version
解决了问题。