The project I’m working on force to me to test all the project’s libraries separately. Here I have a simplification of the tasks that I’ve defined to test those libraries.
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
}
As you can see, for each test, some preparation tasks have to be done before to call connectedAndroidTest
. Calling the testLibrary_A
and testLibrary_B
separately works as expected. But calling allTests
behaves not exactly as I would expect. So the order of the tasks that are executed is the following:
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']
Obviously, that’s not what I want to achieve. My expected execution order would be that connectedAndroidTest
is executed at the end of each test.
Do you have some advice how to do that in Gradle?