gradle idea プラグインを使用してマルチプロジェクト ビルドを構成した後、アイデア 12 でテスト ケースを実行しようとしています。私のプロジェクトは、テスト リソース (src/test/resources) に gradle のデフォルトを使用するように構成されています。これらのリソースにいくつかのフィルタリングを適用します。
// filter test resources
processTestResources {
doLast {
ant.replace(dir: sourceSets.test.output.resourcesDir, replacefilterfile: testProps, includes: "**/*.xml,**/*.properties")
}
}
さらに、processTestResources は、「生成された」ファイルを sourceSets.test.output.resourcesDir にコピーするカスタム タスクに依存します。
フィルタリングされたテスト リソースに依存しているため、多くのテストが失敗しています。テスト ケースに使用されているクラスパスを見ると、rootProject/out/test/targetProject を指しています。そこを見ると、テスト クラスと事前にフィルター処理されたリソース (および、テスト リソースを処理する前に明示的にコピーしたリソース以外) が表示されます。それらは単に src/test/resources からコピーされたようです。これは予想される動作ですか?また、テスト クラスとリソースが、デフォルト gradle デフォルト rootProject/targetProject/build/... ではなく、rootProject/out/rootProject に配置されるのはなぜですか?