Groovy 当任务在任务规则中定义时,如何强制测试任务运行?
我知道您可以通过向Groovy 当任务在任务规则中定义时,如何强制测试任务运行?,groovy,gradle,Groovy,Gradle,我知道您可以通过向build.gradle添加以下内容来强制运行测试任务: tasks.withType( Test ) { outputs.upToDateWhen { false } } 但是,这似乎不适用于在任务规则中定义的测试任务。具体来说,我有一个任务规则如下: tasks.addRule("Pattern: single<ID>: Run single test.") { String taskName -> if (taskName.starts
build.gradle
添加以下内容来强制运行测试任务:
tasks.withType( Test ) {
outputs.upToDateWhen { false }
}
但是,这似乎不适用于在任务规则中定义的测试任务。具体来说,我有一个任务规则如下:
tasks.addRule("Pattern: single<ID>: Run single test.") { String taskName ->
if (taskName.startsWith("single")) {
String pattern = taskName - 'single'
task(taskName, type: Test ) {
outputs.upToDateWhen { false }
include pattern
}
}
}
那么,在使用任务规则时,如何运行相应的测试
非常感谢。我认为
singleBuildInfoScenario000001
是最新的,因为它没有任何测试要运行。(使用--info
运行可能会提供更多信息。)任务似乎缺少一些配置信息,例如类路径
和测试类目录
。有关如何从头开始配置测试
任务的示例,请参阅完整Gradle发行版中的samples/java/withIntegrationTests
。谢谢您的回答。然而,我用其他虚拟JUnit测试用例进行了双重检查。同样的事情发生了。(BuildInfoScenario000001是一个Cucumber测试,因此可能会让事情变得有点复杂。)这应该被视为一个bug吗?您检查了什么?上面给出的测试
任务配置显然不足。到目前为止,我没有任何理由相信这是一个Gradle bug。@Peter:我再次检查了设置。事实证明,答案的第一句话抓住了问题:任务没有任何测试要运行。我将模式更改为'***'+pattern+'*'
。然后一切都按预期进行。非常感谢你。
$ gradle cleanTest singleBuildInfoScenario000001
:cleanTest UP-TO-DATE
:compileJava UP-TO-DATE
:compileGroovy UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:compileTestJava UP-TO-DATE
:compileTestGroovy UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:singleBuildInfoScenario000001 UP-TO-DATE
BUILD SUCCESSFUL
Total time: 4.868 secs