リソースファイルを読み込むクラスメソッドがありますが、ユニットテストでこのクラスを実行しようとしているときにファイルを見つけることができません。ClassLoader UnitTestからリソースが見つかりません
私がアプリケーション戦争を展開するか、または単にmavenを使用してEclipseから実行すると、すべて正常に動作します。
ファイルの場所(わからないのsrc /テスト/リソースが必要な場合、私は問題が発生した後にのみ、しかし助けていない、これを追加しました):
src/main/resources/
-> com
-> xxxx
-> xxxx_portal
-> web
-> server
-> servlet
-> reports -> Logo.png
src/test/resources/
-> com
-> xxxx
-> xxxx_portal
-> web
-> server
-> servlet
-> reports -> Logo.png
関連するクラスコード:
package com.xxxx.xxxx_portal.web.server.servlet.reports;
public class ModuleReports {
private static final String LOGO_IMAGE_PATH = "/com/xxxx/xxxx_portal/web/server/servlet/reports/Logo.png";
...
private static InputStream getLogoImage() {
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream is = classLoader.getResourceAsStream(LOGO_IMAGE_PATH); //Problem here, InputStream is null. It should not be null.
return is;
}
...
}
可能であれば、このクラスとそのメソッドに触れないことを望んでいました。スラッシュを取り除くと単位テストができると言っていますか?私が述べたように、クラスModuleReportsは単体テストから実行していないときにスラッシュでうまく動作します。 – CrazySabbath
試してみる価値があります。また、あなたの質問を更新し、アプリケーションの構築方法を示すこともできます。つまり、Maven pom.xmlまたはAnt build.xmlを表示します。 – VGR
スラッシュを削除します。これは異常な動作ですが、デプロイされたアプリケーションは起動スラッシュがあってもなくてもうまく動作します。 – CrazySabbath