Предположим, у меня есть модуль проекта под названием app.
apply plugin: 'com.android.application'
android {
buildTypes {
debug {
...
}
release {
...
}
}
flavorDimensions 'type'
productFlavors {
domestic {
dimension 'type'
...
}
international {
dimension 'type'
...
}
}
Это дает мне четыре возможных варианта сборки:
- domesticDebug
- domesticRelease
- internationalDebug
- internationalRelease
Тогда предположим, что у меня есть библиотека, mylibrary. Я не объявляю разновидности, поэтому он просто имеет:
Я добавляю некоторые модульные тесты в эту библиотеку. Я включаю библиотеку в качестве зависимости внутри «приложения».
Когда я запускаю задачу Gradle верхнего уровня testDomesticDebugUnitTest
, я случайно ожидаю увидеть выполнение модульных тестов библиотеки.
Однако, похоже, для поиска mylibrary
задачи testDomesticDebugUnitTest
она не найдена - только testDebugUnitTest
- и, следовательно, не выполняется никаких тестов.
Очевидные решения для этого:
- объявляйте ароматы везде, или
- не запускайте спецификацию ароматов c tasks
Ни один из них не кажется концептуально правильным ответом. Первый каскадирует дисперсию продуктов верхнего уровня повсеместно, а второй выполняет ненужные дубликаты задач.
Ожидается ли то, что я вижу, и как мне с этим справляться?