Как я могу настроить build.gradle
в проекте Android для запуска всех моих модульных тестов перед каждой отладкой или выпуском? Я знаю, что я могу устанавливать зависимости задач с помощью dependsOn
, но как я могу указать его для задачи unit test? Я хотел бы сделать это для каждого модуля (Android и простой Java) моего проекта, возможно ли это?
Выполнение модульных тестов перед каждой сборкой в Gradle
Ответ 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 здесь