Тест Wicket JUnit не использует свойства UTF-8

Я создаю приложение с помощью Wicket и пишу тесты JUnit для своих страниц. Мои страницы находятся в одном пакете, который также содержит файл свойств с именем wicket-package.utf8.properties, Свойства успешно загружаются при развертывании приложения на сервере:

INFO  org.apache.wicket.resource.PropertiesFactory - Loading properties files from file:/tmp/cargo/conf/webapps/my-project/WEB-INF/classes/com/myproject/web/wicket/page/wicket-package.utf8.properties with loader org.apache.wicket.resource.UtfPropertiesFilePropertiesLoader@37024e21

Проблема появляется, когда я запускаю тесты JUnit, потому что PropertiesFactory загружает другой файл свойств:

INFO  org.apache.wicket.resource.PropertiesFactory - Loading properties files from jar:file:/home/lovro/.gradle/caches/modules-2/files-2.1/org.apache.wicket/wicket-core/6.16.0/85dd5611907b269f6a25569d9df45513bd0b1b5a/wicket-core-6.16.0.jar!/org/apache/wicket/Application.properties with loader org.apache.wicket.resource.IsoPropertiesFilePropertiesLoader@62e7f11d

Что вы можете видеть, что на сервере UtfPropertiesFilePropertiesLoader в то время как в тестах IsoPropertiesFilePropertiesLoader используется для загрузки свойств.

Как я могу принудительно использовать мой пользовательский файл свойств utf8 в тестах JUnit?

2 ответа

Wicket должен загрузить все доступные пакеты ресурсов, т.е. как ваш UTF-8, так и пакет, предоставленный дистрибутивом Wicket, со значениями по умолчанию. Это загружает их лениво все же. Т.е. ваш UTF-8 будет загружен, только если загружена страница из пакета com.myproject.web.wicket.page.

Не фактический ответ для случая, который был задан, но очень тесно связан и включен в случае, если это поможет кому-то еще. У меня была проблема с одним проектом, когда перевод не работал в юнит-тестах после перехода с .properties в .utf8.properties, хотя переводы работали нормально с WAR, развернутым на Tomcat. Формат XML для свойств не работал ни в одном случае.

После некоторой проверки я пришел к выводу, что проблема с перемещением файлов свойств в то же место, где и мои HTML-файлы. Первоначально свойства находились в том же каталоге, что и файлы.java, что должно было быть в порядке. Причина для .properties.xml файлы, не работающие на Tomcat, вероятно, были вызваны тем, что файл сборки ant не включал их в WAR.

Если бы я следовал стандартному (наилучшему опыту?) Объединению всех источников (кода и ресурсов) вместе, я бы, конечно, полностью избежал этой проблемы.

Другие вопросы по тегам