- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当通过 Gradle 启动 JUnit 测试时是否已经可以生成 HTML 报告?任何提示或评论表示赞赏。
最佳答案
更新
Gradle 4.6 提供 built-in support for the JUnit Platform它允许您使用标准 Gradle test
任务运行 JUnit Jupiter 测试,该任务生成开箱即用的 HTML 报告。
4.6之前的Gradle版本的答案
JUnit Platform Gradle 插件生成 JUnit 4 样式的 XML 测试报告。
这些 XML 文件默认输出到 build/test-results/junit-platform
。
因此,如果您的构建服务器知道如何解析 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 平台运行的测试的测试类名称。
无论如何,你都可以配置Ant的JUnitReport Gradle 中的任务如下。
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报告。
问候,
Sam(核心 JUnit 5 提交者)
关于gradle - 如何为 JUnit 5 测试创建 HTML 报告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39444908/
我是一名优秀的程序员,十分优秀!