私はマルチモジュールプロジェクトを持っています。私はIntelliJを使用しており、テストリソースディレクトリとしてsrc/test/resourcesをマークしています。私はそのディレクトリにabc.txtを配置しました。テストファイルを読み込むのは、ClassLoaderを使用している場合のみです。
最初の行は私のために実行されますが、2番目の行は実行されませんが、他の行はなぜ機能するのですか?
// this returns a stream
this.getClass().getClassLoader().getResourceAsStream("abc.txt"));
// this returns null
this.getClass().getResourceAsStream("abc.txt"));
Googleでテストファイルを読み込むための最初の数回のヒットを読んだ後、これらの提案が見つかりました。私は二番目がいくつかの人々のために働くことを可能にする細部が何であるか私ではないことを私は知らない。
いくつかのコーナーケースでClassLoaderが動作しないというヒントがいくつか見つかりました。私がジェンキンスにそれをプッシュするとすぐにこれが失敗するのだろうか?
このクラスを呼び出す場所のコードと、上記のコードの実行方法を教えてください。また、クラスローダーは 'this.getClass()。getRes..'を行う際に解決しなければならないことは、あなたのケースでは私が考えていることです。 – nullpointer
そのクラスの最初のテスト。テストメソッドには2行しかありません。私はいつもこのような問題に悩まされているので、まずこの問題に直面しました。 – MedicineMan
'this.getClass()。getResourceAsStream("/abc.txt ")'を試してみましたか? –