以下是我的作业的目录结构。 Assign有一个symbols.txt,src文件夹和一个测试文件夹。
我在文件测试文件的顶部写了这个。 $:。unshift'..'
我将symbols.txt作为参数传递给测试并在主类中调用方法。
def test_get_symbols_from_file
assert(@asset.get_symbols_from_file('symbols.txt'))
end
虽然我要求移动到一个目录并查找此测试类中的symbols.txt,但它说
Errno :: ENOENT:没有这样的文件或目录 - symbols.txt
我包括错误的道路吗?
答案 0 :(得分:0)
我认为你对$:
的意思感到困惑。 $:
is also known as $LOAD_PATH
那就是:
按
加载脚本和二进制模块的路径load
或require
。
您还会在require
文档中找到$:
:
如果
filename
未解析为绝对路径,则会在$LOAD_PATH
($:
)中列出的目录中搜索它。
所以$:
是require
的搜索路径,它与普通文件操作没有任何关系。你不得不说:
@asset.get_symbols_from_file('../symbols.txt')
或
@asset.get_symbols_from_file('/some/absolute/path/to/symbols.txt')
或将搜索路径支持构建到get_symbols_from_file
。