1

私のテストパッケージは次のようになります

test/
    java/
        com/
           algos/
                graphs/
                      GraphTest.java
    resources/
             graphs/
                   tinyG.txt

次のようGraphTestに読んでみましたtinyG

@Test
public void testTinyG() throws IOException {
    final Graph g = new Graph(getBufferedReaderFor("tinyG.txt"));
    System.out.println(g.toString());
}

private static BufferedReader getBufferedReaderFor(final String filename) {
    return new BufferedReader(new InputStreamReader(GraphTest.class.getResourceAsStream("/graphs/" + filename)));
}

次のように失敗しNullPointerExceptionます

GraphTest.class.getResourceAsStream("/graphs/" + filename)

戻りますnull

ここで私が間違っていることは何ですか?

tinyGのようなデータがあります

13
13
0 5
4 3
0 1
9 12
6 4
5 4
0 2

ありがとうございました

4

1 に答える 1

2

Eclipse がプロジェクトの JUnit テストを実行する場合、通常はプロジェクトの作業ディレクトリを使用してテストを開始します。したがって、クラスパスから tinyG.txt にアクセスするには、パスを使用する必要があります/test/resources/graphs/tinyG.txt。作業を行う唯一の方法はtinyG.txt、.class ファイルと同じディレクトリに存在することです。

于 2013-09-22T02:49:44.423 に答える