2013-10-01 35 views
0

以下是我的任务的目录结构。 分配有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

我想你感到困惑的是$:手段。 $: is also known as $LOAD_PATH那就是:为脚本和二进制模块通过loadrequire

负载路径。

你还会发现在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

+0

但没有../测试通过当我通过cmd运行耙,但它在编辑器“SubLime2”失败,当我把'../'测试传递崇高和失败时,当我运行耙。问题是什么?请帮忙 –

+0

问题是,你正在假设关于当前目录的事情并不总是真实的,使用绝对路径而不是相对路径可以解决这个问题。 –