mercredi 13 novembre 2019

Unable to execute all single tests on gradle

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?

Aucun commentaire:

Enregistrer un commentaire