2010-09-16 2 views
5

Я пытаюсь написать некоторые тесты Junit для тестирования старых классов в нашем приложении. Код пытается загрузить ResourceBundle (для переводов), но сбой. Я думаю, проблема связана с classpath, но я не могу понять это.Не удается загрузить ResourceBundle во время теста junit

Код изложен в/src, и мои тесты находятся в/test. ResourceBundles загружаются с базовым именем относительно/src, скажем, «foo/bar/baz».

В моих тестах используется тот же путь к классам, что и приложение, поэтому я не понимаю, почему он не найдет пакеты.

Любые идеи о том, что не так?

+0

Являются ли ваши тесты под каталогом '/ test'? – Asaph

+0

Если вы временно измените относительный путь вашего ResourceBundles на абсолютный, проблема исчезнет? – Asaph

ответ

6

Ресурсы не разрешены из исходной папки, а из каталога классов. Скопированы ли ваши файлы ресурсов в выходную папку (bin, target/classes и т. Д.)? Если нет, ваши классы не смогут их найти.

+0

D'uh! Конечно, мои тесты используют другой выходной каталог, чем приложение. Это определенно. – fiskeben

5

Если вы используете maven, вы, как правило, хотите разместить все типы файлов свойств и ресурсов в отдельной исходной папке с именем src/main/resources/.

Если вы хотите переопределить значения в своих модульных тестах, вы можете добавить дубликат. файл в исходной папке src/test/resources.

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