Где я должен поместить свой файл свойств для тестов? - PullRequest
2 голосов
/ 17 марта 2012

У меня есть файл свойств, который в данный момент находится в этой папке:

/src/webapp/WEB-INF/classes/my.properties

Я загружаю его, используя:

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream is = classLoader.getResourceAsStream("/my.properties");

Properties props = new Properties();

try {
    props.load(is);
} catch (IOException e) {
    e.printStackTrace(); 
}

String test = props.getProperty("test");

Теперь это отлично работает в моем приложении Spring mvc.

Но когда я создал тест для этого, он проваливается, и я предполагаю, потому что способ загрузки приложения не использует web-inf / classes, поскольку это просто класс, а не весеннее веб-приложение.

Итак, куда мне поместить файл свойств, чтобы при запуске моих тестов junit был выбран файл свойств?

Кроме того, для моего веб-приложения, какие другие папкинаходятся в пути к классам по умолчанию, кроме / web-inf / classes?

Ответы [ 3 ]

6 голосов
/ 17 марта 2012

Если вы поставите my.properties под /src/test/resources в , он будет доступен как обычный ресурс для ваших тестов.

1 голос
/ 17 марта 2012

Я бы удалил путь (/) в classLoader.getResourceAsStream("/my.properties");, поскольку загрузчик классов запускается в корне приложения.Храните файл в том же месте, где он есть.Затем измените на

String filename = "my.properties"; 
InputStream is = classLoader.getResourceAsStream(filename);  //for web-app
if(is == null)
    is = new FileInputStream (filename);        //for testing
0 голосов
/ 17 марта 2012

Обычно я помещаю файлы свойств прямо в папку src.

...