Java:无法在JUnit测试中读取数据文件

时间:2013-09-22 02:02:35

标签: java junit

我的测试包看起来像

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

谢谢

1 个答案:

答案 0 :(得分:2)

当Eclipse为项目运行JUnit测试时,它通常使用项目的工作目录启动测试。因此,要从类路径访问tinyG.txt,您必须使用路径/test/resources/graphs/tinyG.txt。让tinyG.txt工作的唯一方法是使它与.class文件驻留在同一目录中。