Gradleを介してJUnitテストが開始されたときにHTMLレポートを生成する可能性はすでにありますか?ヒントやコメントをいただければ幸いです。
[〜#〜]更新[〜#〜]
Gradle 4.6は JUnitプラットフォーム の組み込みサポートを提供します。これにより、標準のGradle test
タスクを使用してJUnitJupiterテストを実行できます。箱から出してHTMLレポートを生成します。
4.6より前のGradleバージョンに対する回答
JUnit Platform Gradleプラグインは、JUnit4スタイルのXMLテストレポートを生成します。
これらのXMLファイルはデフォルトでbuild/test-results/junit-platform
に出力されます。
したがって、ビルドサーバーがJUnit 4スタイルのXMLレポートを解析する方法を知っている場合は、そのディレクトリ内のXMLファイルをポイントするだけで、ビルドサーバーにHTMLレポートを生成させることができます。
ただし、GradleがjunitPlatformTest
タスクを介して実行されるテストのHTMLレポートを生成できるかどうかを尋ねる場合、答えは「いいえ、残念ながらそうではありません」です。その理由は、標準のGradle test
タスクは、独自の「バイナリ」レポート形式に基づいてHTMLレポートのみを生成するためです。 junitPlatformTest
タスクはGradleのバイナリ形式でレポートを生成しないため、Gradle自体はJUnitプラットフォームテストのHTMLレポートを生成できません。
ただし、実際には回避策があります。Gradleビルド内でAntを使用できます。 Antには、JUnit 4ベースのXMLレポートを集約し、それらの集約されたレポートからHTMLレポートを生成するタスクがあります。出力はあまり現代的ではありませんが、少なくとも人間が読める形式です。欠点は、デフォルトのXSLTスタイルシートに、JUnitプラットフォームを介して実行されるテストのテストクラス名が表示されないことです。
いずれの場合も、GradleでAntの JUnitReport タスクを次のように構成できます。
junitPlatform {
// configure as normal
}
configurations {
junitXmlToHtml
}
task generateHtmlTestReports << {
def reportsDir = new File(buildDir, 'test-reports')
reportsDir.mkdirs()
ant.taskdef(
name: 'junitReport',
classname: 'org.Apache.tools.ant.taskdefs.optional.junit.XMLResultAggregator',
classpath: configurations.junitXmlToHtml.asPath
)
ant.junitReport(todir: "$buildDir/test-results/junit-platform", tofile: "aggregated-test-results.xml") {
fileset(dir: "$buildDir/test-results/junit-platform")
report(format: 'frames', todir: reportsDir)
}
}
afterEvaluate {
def junitPlatformTestTask = tasks.getByName('junitPlatformTest')
generateHtmlTestReports.dependsOn(junitPlatformTestTask)
check.dependsOn(generateHtmlTestReports)
}
dependencies {
// configure as normal ...
junitXmlToHtml 'org.Apache.ant:ant-junit:1.9.7'
}
次に、gradle check
を実行すると、build/test-reports/index.html
にHTMLレポートが生成されます。
よろしく、
サム(コアJUnit 5コミッター)
以下の行をmy Javaコマンドが作成しましたTEST-junit-jupiter.xml
私のtarget/test-result
フォルダ。このxmlファイルには、実行されたテストケースの数、合格/不合格のテストの数などに関するすべての情報が含まれています。
--reports-dir target/test-result