我正在研究的项目迫使我分别测试所有项目的库。在这里,我简化了为测试这些库而定义的任务。
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_A
和testLibrary_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中做到吗?