首页 > 解决方案 > 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_AandtestLibrary_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 中做到这一点有什么建议吗?

标签: gradle

解决方案


推荐阅读