Тестирование категорий Android

Я бы хотел иметь две (или несколько) тестовых задач для моего проекта Android, где разница – это другой набор категорий Junit для включения / исключения.

Используя плагин java для java, я могу сделать что-то вроде

task testFast(type: Test) { useJUnit { includeCategories 'foo.Fast' excludeCategories 'foo.Slow' } } task testSlow(type: Test) { useJUnit { includeCategories 'foo.Slow' excludeCategories 'foo.Fast' } } 

Однако, если вы используете плагин android, я должен добавить testOptions к закрытию Android для включения / исключения,

 android { ... testOptions { unitTests.all { useJUnit { excludeCategories foo.Slow' } } } ... } 

Но, конечно, это относится ко всем тестовым задачам для всех вариантов сборки.

Есть ли способ создать задачи, которые используют один и тот же вариант сборки, но выполнять тесты для разных категорий?

Лучше всего я придумал использовать свойство gradle из командной строки:

 testOptions { unitTests.all { useJUnit { if (project.hasProperty('testCategory') && testCategory == "Slow") { includeCategories 'foo.Slow' } else { excludeCategories 'foo.Slow' } } } } 

И использовать

 gradlew -PtestCategory=Slow test