Gradle中任务订单执行的问题
我正在进行的项目迫使我分别测试项目的所有库。这里我简化了我为测试这些库而定义的任务Gradle中任务订单执行的问题,gradle,Gradle,我正在进行的项目迫使我分别测试项目的所有库。这里我简化了我为测试这些库而定义的任务 tasks.register('prepareStuffForLibrary_A') {} tasks.register('prepareStuffForLibrary_B') {} tasks.register('testLibrary_A') { dependsOn prepareStuffForLibrary_A finalizedBy connectedAndroidTest } task
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\u A
和testLibrary\u B
可以正常工作。但是调用allTests
的行为与我预期的不完全一样。因此,执行的任务顺序如下:
要执行的任务:[任务]:应用程序:PrepareStufforlibrary_A',任务]:应用程序:testLibrary_A',任务]:应用程序:PrepareStufforlibrary_B',任务]:应用程序:connectedAndroidTest',任务]:应用程序:allTestsDemo'.
显然,这不是我想要实现的。我预期的执行顺序是在每个测试结束时执行
connectedAndroidTest
你对如何在Gradle中实现这一点有什么建议吗?那么你不应该把
connectedAndroidTest
作为一个单独的任务,而是一个作为测试任务一部分执行的操作,例如通过doLast{}
connectedAndroidTest
是由Android Gradle插件生成的任务。是否有其他方法使用此任务的功能?