0

以下は、私の割り当てのディレクトリ構造です。Assign には、symbols.txt、src フォルダー、および test フォルダーが含まれています。

ファイルテストファイルの先頭にこれを書きました。$:.unshift '..'

テストでsymbols.txtをパラメーターとして渡し、メインクラスでメソッドを呼び出しています。

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

1つ上のディレクトリに移動して、このテストクラスからsymbols.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 に答える