(Gradle 3.2.1)いくつかのJavaテストを実行します。これは、Stderr/Stdoutに出力を記録します。起動すると、その出力を確認できます。
_gradle test --info
_
しかし、その場合、サードパーティのライブラリからの不要な出力の多くもそこにあります。
ドキュメント はlogging.caputureStandardError / logging.caputureStandardError (loglevel)
の使用を提案していますが、効果はないようです。
_tasks.withType(Test) {
logging.captureStandardOutput LogLevel.QUIET
logging.captureStandardError LogLevel.QUIET
}
_
その後、_gradle test
_を実行すると、STDERR/STDOUTではなくコンソールに出力されます。
コンソールのテストクラスから出力だけを取得するにはどうすればよいですか?
これらの行をbuild.gradle
に追加します。
apply plugin: 'Java'
test {
dependsOn cleanTest
testLogging.showStandardStreams = true
}
注意:dependsOn cleanTest
は不要ですが、使用しない場合、cleanTest
を実行する必要がありますまたはclean
タスクの前のtest
タスク。
より良いアプローチ:
apply plugin: 'Java'
test {
testLogging {
outputs.upToDateWhen {false}
showStandardStreams = true
}
}
注意:outputs.upToDateWhen {false}
は不要ですが、使用しない場合、cleanTest
を実行する必要がありますまたはclean
タスクの前のtest
タスク。
詳細とオプションについては、 ドキュメント を参照してください。
Gradleにkotlin/kotlin dslを使用している場合は、build.grade.ktsファイルに次を追加する必要があります。
tasks.withType<Test> {
this.testLogging {
this.showStandardStreams = true
}
}
また、別の回答で述べたように、出力を毎回印刷するには「gradle clean test」を実行する必要があります。