【发布时间】:2021-04-29 18:06:36
【问题描述】:
我将首先解释我的用例,然后概括说明我想要做什么。
用例:打开测试结果
默认$gradle test 将运行test 任务并运行所有单元测试。我想添加一个browseTest 任务,如果在命令行上指定,它将在默认浏览器中打开测试报告。我已经有了打开测试结果的代码,但我需要弄清楚如何执行它。以下是我认为它应该如何工作:
| Command | Tests up-to-date | Run tests? | Test result? | Open test report? |
|---|---|---|---|---|
| test | no | yes | success/failure | no |
| test | yes | no | success/failure | no |
| browseTest | no | yes | success/failure | yes |
| browseTest | yes | no | success/failure | yes |
一般情况
我希望能够让一个任务(即browseTest)将另一个任务(例如task)添加到任务图中,而不依赖于其他任务的成功或失败。如果我使用dependsOn,那么第一次拍摄失败会阻止第二个任务执行。使用mustRunAfter 指定排序但不会将任务添加到任务图中(因此不会被执行)。
如果有类似以下的内容,我相信它会得到我想要的:
task("browseTest") {
addsToTaskGraph("test")
mustRunAfter("test")
doLast {
// Open test results in browser
}
}
【问题讨论】:
标签: gradle build.gradle gradle-kotlin-dsl