1

私は Wicket でアプリケーションを構築しており、自分のページの JUnit テストを書いています。私のページは 1 つのパッケージに含まれており、このパッケージには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

PropertiesFactory が別のプロパティ ファイルをロードするため、JUnit テストを実行すると問題が発生します。

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

ご覧のとおり、サーバーでは aUtfPropertiesFilePropertiesLoaderが使用されていますが、テストでIsoPropertiesFilePropertiesLoaderはプロパティの読み込みに a が使用されています。

JUnit テストでカスタム utf8 プロパティ ファイルを強制的に使用するにはどうすればよいですか?

4

2 に答える 2

0

質問されたケースに対する実際の回答ではありませんが、非常に関連しており、他の誰かを助ける場合に備えて含まれています。Tomcat にデプロイされた WAR では翻訳は正常に機能しましたが、 から.propertiesに切り替えた後、単体テストで翻訳が機能しないという 1 つのプロジェクトで問題が発生しました。.utf8.propertiesどちらの場合も、プロパティの XML 形式は機能しませんでした。

いくつかの調査の後、プロパティ ファイルを HTML ファイルと同じ場所に移動することで問題が解決したという結論に達しました。元々、プロパティは .java ファイルと同じディレクトリにありましたが、これで問題ありませんでした。Tomcatでファイルが機能しない理由は、.properties.xmlおそらく、ant ビルド ファイルが最初にそれらを WAR に含めていなかったためです。

もちろん、すべてのソース (コードとリソース) を一緒にするというデフォルト (ベスト プラクティス?) に従っていれば、この問題は完全に回避できたはずです。

于 2017-07-22T08:21:01.337 に答える