我的测试包看起来像
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
谢谢
答案 0 :(得分:2)
当Eclipse为项目运行JUnit测试时,它通常使用项目的工作目录启动测试。因此,要从类路径访问tinyG.txt,您必须使用路径/test/resources/graphs/tinyG.txt
。让tinyG.txt
工作的唯一方法是使它与.class文件驻留在同一目录中。