Jue*_*ann 10 junit gradle junit5
当通过Gradle启动JUnit测试时,是否已经有可能生成HTML报告?任何提示或评论都表示赞赏.
Sam*_*nen 13
UPDATE
Gradle 4.6为JUnit平台提供内置支持,允许您使用标准Gradle test任务运行JUnit Jupiter测试,该任务可立即生成HTML报告.
回答4.6之前的Gradle版本
JUnit Platform Gradle Plugin生成JUnit 4样式的XML测试报告.
build/test-results/junit-platform默认情况下,这些XML文件将输出到.
因此,如果您的构建服务器知道如何解析JUnit 4样式的XML报告,您只需将其指向该目录中的XML文件,然后让构建服务器为您生成HTML报告.
但是,如果您询问Gradle是否可以为通过junitPlatformTest任务运行的测试生成HTML报告,那么答案是"不,不幸的是没有".原因是标准Gradle test任务仅基于其自己的专有"二进制"报告格式生成HTML报告.由于junitPlatformTest任务不以Gradle的二进制格式生成报告,因此Gradle本身无法为JUnit Platform测试生成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'
}
Run Code Online (Sandbox Code Playgroud)
然后,执行gradle check将生成HTML报告build/test-reports/index.html.
问候,
山姆(核心JUnit 5提交者)
| 归档时间: |
|
| 查看次数: |
8297 次 |
| 最近记录: |