在 gradle 中,如何为不同的任务创建单独的测试报告?

Posted

技术标签:

【中文标题】在 gradle 中,如何为不同的任务创建单独的测试报告?【英文标题】:In gradle how do you create separate test reports for separate tasks? 【发布时间】:2014-09-16 04:15:07 【问题描述】:

我有三个测试源集

/src/tests/...
src/test-integration/
src/test-acceptance/

gradle build 只运行单元测试,而我有单独的任务来运行测试集成和测试接受。 This setup,基本上:

task acceptanceTest(type: Test) 
    description = "Runs acceptance tests"
    testReportDirName ="acceptance"
    testClassesDir = sourceSets.acceptanceTest.output.classesDir
    classpath += sourceSets.test.runtimeClasspath + sourceSets.acceptanceTest.runtimeClasspath
    useJUnit()
    testLogging 
      events "passed", "skipped", "failed"
    

现在我唯一的问题是我希望验收/集成测试在“测试”文件夹以外的其他地方打印他们的报告,因为它们会相互覆盖。基本上我想更改testReportDirName 属性,但仅用于一项任务。

【问题讨论】:

你使用的是什么版本的 Gradle? 2.0 版,来自 ppa 似乎可以改变 gradle v.2.1 中生成测试报告的可怕之处。导航到$GRADLE_HOME/samples/testing/testReport 并在那里您可以找到如何完成的示例。 【参考方案1】:

您可以更改默认的测试结果和报告目录,如下所示:

task acceptanceTest(type: Test) 
    reports.html.destination = file("$reports.html.destination/acceptance")
    reports.junitXml.destination = file("$reports.junitXml.destination/acceptance")

【讨论】:

以上是关于在 gradle 中,如何为不同的任务创建单独的测试报告?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 gradle 任务命令行参数提供 flyway 密码?

如何为 Gradle 文件集合中的每个文件执行 shell 命令?

如何为 gradle 发布任务设置超时?

如何为 icarousel 中的每个按钮创建单独的操作?

Filebeat/ELK中如何为不同的日志定义单独的索引?

如何为单个项目中运行的每个批次创建单独的日志文件?