2013-09-22 2 views
1

мой тестовый пакет выглядит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 

Спасибо

+0

GraphTest.class.getResourceAsStream ("/ graphs /" + filename). Когда ваше местоположение связано с/resources/graphs, почему вы указываете путь только из/графиков? Пожалуйста, сообщите нам, если/ресурсы находятся на том же уровне, что и у/теста или даже ниже теста? Затем вам необходимо включить родительский путь. – Optional

+0

Что вы получаете, когда распечатываете текущий рабочий каталог? – atk

ответ

2

Когда Eclipse, работает JUnit тестов для проекта, он обычно начинает испытания с использованием рабочего каталога проекта. Итак, чтобы получить доступ к tinyG.txt из пути к классам, вам нужно будет использовать путь /test/resources/graphs/tinyG.txt. Единственный способ работы tinyG.txt состоял бы в том, чтобы он находился в том же каталоге, что и файл .class.

Смежные вопросы