Выполнение модульных тестов перед каждой сборкой в ​​Gradle

Как я могу настроить build.gradle в проекте Android для запуска всех моих модульных тестов перед каждой отладкой или выпуском? Я знаю, что я могу устанавливать зависимости задач с помощью dependsOn, но как я могу указать его для задачи unit test? Я хотел бы сделать это для каждого модуля (Android и простой Java) моего проекта, возможно ли это?

Ответ 1

У вас есть специальная задача для запуска только модульных тестов? Или вы можете запускать его как простой test (или, в более общем плане, testDebug и testRelease)? Скажем, вы хотите запускать testDebug или testRelease каждый раз, когда вы вызываете задачу assembleDebug или assembleRelease. Затем вы, как вы уже отметили, можете использовать свойство задачи dependsOn. Например, следующим образом:

assembleDebug.dependsOn testDebug
assembleRelease.dependsOn testRelease

Эта конфигурация должна быть добавлена ​​к каждому build.gradle script (в каждом модуле проекта), где вам это нужно. Если у вас есть несколько тестовых задачm, вы можете установить зависимости задач таким образом:

tasks.assembleRelease.dependsOn {
    project.tasks.findAll { task ->
        task.name.startsWith('testRelease')
    }
}

Конечно, вы можете попробовать установить эти зависимости в корне root build.gradle script, используя allprojects или subprojects (вы можете прочитать об этом здесь), но вы должны применить плагин android в корневом каталоге script, иначе задачи не будут найдены.

Ответ 2

Перейдите в Run/Debug Configurations и выберите конфигурацию вашего приложения. В нижней части правой панели в разделе "Перед запуском": нажмите кнопку "+" и выберите "Запустить другую конфигурацию". Там выберите конфигурацию для запуска тестов.

Перед запуском установите команду тестового примера для запуска. введите описание изображения здесь

введите описание изображения здесь

else для задачи gradle здесь