この質問に続きます。
タスクの 2 つのインスタンスを含むビルドがある場合、Test
それらの 2 つのタスクを完全に分離して出力が重複しないようにする最善の (最もクリーンで、コードが少なく、最も堅牢な) 方法は何ですか?
testResultsDir
それらとプロパティを設定しようとしましtestReportsDir
たが、期待どおりに機能していないようです。(つまり、出力は別々のディレクトリに書き込まれますが、それでも 2 つのタスクは実行ごとにそれぞれのテストを再実行します。)
gradle 1.8 の現在の状況の更新: dty の回答の testReportDir および reportsDir プロパティは、gradle 1.3 以降非推奨です。テスト結果は「test-results」ディレクトリで自動的に分離されるようになり、HTML レポートに別の宛先ディレクトリを設定するには、
tasks.withType(Test) {
reports.html.destination = file("${reporting.baseDir}/${name}")
}
Ingo Kegel の回答は結果ディレクトリではなく、レポート ディレクトリのみに対応しています。つまり、特定のテスト タイプのテスト レポートを作成して、そのタイプだけでなく、より多くのテスト結果を含めることができます。これは、結果ディレクトリも設定することで対処できます。
tasks.withType(Test) {
reports.html.destination = file("${reporting.baseDir}/${name}")
reports.junitXml.destination = file("${testResultsDir}/${name}")
}
繰り返しになりますが、ルネは私を正しい方向に向けてくれました。ありがとう、ルネ。
このアプローチは機能することがわかりましたが、何か間違ったことをしていたに違いありません。
Test
参考までに、すべてのタスクを定義した後、以下をビルドに追加しました。
tasks.withType(Test) {
testReportDir = new File("${reportsDir}/${testReportDirName}/${name}")
testResultsDir = new File("${buildDir}/${testResultsDirName}/${name}")
}
これにより、タスク名をディレクトリ階層の一部として持つことで、タスクのすべてのインスタンスがTest
互いに分離されます。
しかし、私はまだこれは少し悪いと感じており、私がまだ見つけていないこれを達成するためのよりクリーンな方法があるに違いありません!