web-dev-qa-db-ja.com

JUnit 5テストのHTMLレポートを作成するにはどうすればよいですか?

Gradleを介してJUnitテストが開始されたときにHTMLレポートを生成する可能性はすでにありますか?ヒントやコメントをいただければ幸いです。

11

[〜#〜]更新[〜#〜]

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レポートを生成させることができます。

ただし、GradlejunitPlatformTestタスクを介して実行されるテストの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コミッター

13
Sam Brannen

以下の行をmy Javaコマンドが作成しましたTEST-junit-jupiter.xml私のtarget/test-resultフォルダ。このxmlファイルには、実行されたテストケースの数、合格/不合格のテストの数などに関するすべての情報が含まれています。

 --reports-dir target/test-result
1
Anantha