0

以下是我作业的目录结构。Assign 里面有一个symbols.txt、src 文件夹和一个test 文件夹。

我在我的文件测试文件的顶部写了这个。$:.unshift '..'

我在测试中将 symbols.txt 作为参数传递并在主类中调用该方法。

def test_get_symbols_from_file
    assert(@asset.get_symbols_from_file('symbols.txt'))
end

虽然我要求移动到一个目录并从这个测试类中查找symbol.txt,但它说

Errno::ENOENT: 没有这样的文件或目录 - symbols.txt

我是否包括错误的路径?

4

1 回答 1

0

我认为您对这种$:方式感到困惑。$:也称为$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.

于 2013-10-01T05:23:12.987 回答