Тест 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.
Если бы я следовал стандартному (наилучшему опыту?) Объединению всех источников (кода и ресурсов) вместе, я бы, конечно, полностью избежал этой проблемы.