2013-10-01 150 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

問題是,你正在假設關於當前目錄的事情並不總是真實的,使用絕對路徑而不是相對路徑可以解決這個問題。 –