2

この質問に続きます。

タスクの 2 つのインスタンスを含むビルドがある場合、Testそれらの 2 つのタスクを完全に分離して出力が重複しないようにする最善の (最もクリーンで、コードが少なく、最も堅牢な) 方法は何ですか?

testResultsDirそれらとプロパティを設定しようとしましtestReportsDirたが、期待どおりに機能していないようです。(つまり、出力は別々のディレクトリに書き込まれますが、それでも 2 つのタスクは実行ごとにそれぞれのテストを再実行します。)

4

4 に答える 4

6

gradle 1.8 の現在の状況の更新: dty の回答の testReportDir および reportsDir プロパティは、gradle 1.3 以降非推奨です。テスト結果は「test-results」ディレクトリで自動的に分離されるようになり、HTML レポートに別の宛先ディレクトリを設定するには、

tasks.withType(Test) {
    reports.html.destination = file("${reporting.baseDir}/${name}")
}
于 2013-10-08T15:14:39.613 に答える
0

Ingo Kegel の回答は結果ディレクトリではなく、レポート ディレクトリのみに対応しています。つまり、特定のテスト タイプのテスト レポートを作成して、そのタイプだけでなく、より多くのテスト結果を含めることができます。これは、結果ディレクトリも設定することで対処できます。

tasks.withType(Test) {
    reports.html.destination = file("${reporting.baseDir}/${name}")
    reports.junitXml.destination = file("${testResultsDir}/${name}")
}
于 2016-05-26T14:43:55.617 に答える
0

繰り返しになりますが、ルネは私を正しい方向に向けてくれました。ありがとう、ルネ。

このアプローチは機能することがわかりましたが、何か間違ったことをしていたに違いありません。

Test参考までに、すべてのタスクを定義した後、以下をビルドに追加しました。

tasks.withType(Test) {
    testReportDir = new File("${reportsDir}/${testReportDirName}/${name}")
    testResultsDir = new File("${buildDir}/${testResultsDirName}/${name}")
}

これにより、タスク名をディレクトリ階層の一部として持つことで、タスクのすべてのインスタンスがTest互いに分離されます。

しかし、私はまだこれは少し悪いと感じており、私がまだ見つけていないこれを達成するためのよりクリーンな方法があるに違いありません!

于 2012-10-02T09:30:39.087 に答える