在Gradle中执行任务订单的麻烦

时间:2019-11-13 10:32:42

标签: gradle

我正在研究的项目迫使我分别测试所有项目的库。在这里,我简化了为测试这些库而定义的任务。

tasks.register('prepareStuffForLibrary_A') {}
tasks.register('prepareStuffForLibrary_B') {}
tasks.register('testLibrary_A') {
    dependsOn prepareStuffForLibrary_A
    finalizedBy connectedAndroidTest
}
tasks.register('testLibrary_B') {
    dependsOn prepareStuffForLibrary_B
    finalizedBy connectedAndroidTest
}
tasks.register('allTests') {
    dependsOn testLibrary_A
    dependsOn testLibrary_B
}

如您所见,对于每个测试,在调用connectedAndroidTest之前必须完成一些准备工作。分别调用testLibrary_AtestLibrary_B可以正常工作。但是调用allTests的行为并不完全符合我的预期。因此,执行任务的顺序如下:

Tasks to be executed: [task ':app:prepareStuffForLibrary_A', task ':app:testLibrary_A', task ':app:prepareStuffForLibrary_B', task ':app:testLibrary_B', task ':app:connectedAndroidTest', task ':app:allTestsDemo']

显然,这不是我想要实现的目标。我期望的执行顺序是在每次测试结束时执行connectedAndroidTest

您有一些建议如何在Gradle中做到吗?

0 个答案:

没有答案