2013-11-20 3 views
0

В модулях тесты как побочный эффект Я создаю скриншоты для различных частей графического интерфейса. Я хочу использовать эти скриншоты при компиляции документации.сохранить файл из модульного теста в дерево проекта

Поэтому я хочу сохранить их в каталог в дереве источников.

Есть ли надежный способ получить корневой каталог источника при запуске теста junit?

Если нет, то как я могу убедиться, что модульные тесты выполняются с помощью cwd = root проекта при использовании eclipse и при использовании maven?

ответ

1

Если вы выполняете тесты на затмение или используете maven, если вы не укажете путь при создании файла, который он автоматически создается в корневом каталоге проекта.

так, если указать относительный папку файлы будут туда:

public class TestFileCreation { 

@Test 
public void testFileCreation() throws IOException { 
    File f = new File("src/main/resources/hello.txt"); 
    OutputStream ostream = new FileOutputStream(f); 
    String data = "Hello there !"; 
    ostream.write(data.getBytes()); 
    ostream.close(); 
} 

}

создаст файл внутри $ PROJECT/SRC/основные/ресурсов.

Надежда мой ответ помогает

+0

Спасибо, я принял это направление. Я проверяю наличие каталога, чтобы убедиться, что я нахожусь в нужном месте. –

0

Вы можете опираться на свои классы месте. Предлагаемое решение здесь - использовать класс, который, несомненно, будет в classpath. Затем вы можете использовать class.getResource(""). Пример

public class ResouceRoot { 

    public static String get() { 
     String s = ResouceRoot.class.getResource("").toString(); 
     if (s.startsWith("jar:")) { 
      s = s.replace("jar:", "").replaceAll("!.*", ""); 
     } else { 
      s = s.replaceAll("classes.*", "classes"); 
     } 
     File f = new File(s.replace("file:", "")); 
     return f.getParentFile().getParentFile().getAbsolutePath(); 
    } 

    public static void main(String[] args) throws IOException { 
     System.out.println(get()); 
    } 
} 

(этот код даст базовый каталог для Netbeans проектов, если они запускаются из NetBeans или java -jar ...)

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