Я изменил свой проект, чтобы стать мультиплатформенным.Gradle: Как запустить тесты из зависимости модуля?
Предыдущее состояние: Только один модуль (проект) с одним build.gradle. Все тесты были в тестовой папке, и когда я запустил gradlew testDebug
, все мои 500 тестов были запущены.
Новое состояние: У меня есть главный Gradle проект, который ничего не делает, но проведение 3-х модулей
- ядро
- androidversion
- rasberryPiVersion
Каждый из них модули имеют собственный файл gradle, но могут быть созданы только модули android и rasberryPi. В своих зависимостях (в соответствующем файле build.gradle) они компилируются против «основного» модуля. Например:
dependencies {
compile project(':clapcore')
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android:android:4.1.1.4'
}
Все мои 500 тестов теперь находятся в ядре. Поэтому, когда я делаю gradlew clean assembleDebug testDebug
на модуле Android, тест не обнаружен, и папка тестового результата пуста.
Я попытался запустить testDebug
команды на основном модуле непосредственно, но так как он не строит сам по себе, я получаю сообщение об ошибке:
FAILURE: Build failed with an exception.
* What went wrong:
Task 'testDebug' not found in project ':core'.
Так что мой вопрос: есть ли способ, в gradle, чтобы сообщить команде «testDebug» выполнить все тесты, которые находятся в его зависимости от модуля (ядро)?
Я также попытался добавить testCompile в зависимости от андроида модуля, но он не работает, как это:
dependencies {
compile project(':clapcore')
testCompile project(':clapcore')
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android:android:4.1.1.4'
}
Спасибо!
EDIT Я обнаружил, что я могу сделать команду gradlew build
на ядре, и он будет работать тест в модуле «основной». Но мне хотелось бы запустить этот тест, если это возможно.
* EDIT 2 * Я обнаружил, что я могу сделать команду gradlew buildNeeded
на «андроид» модуль и он будет делать сборки для андроида модуля и ядра. К сожалению, он только строится в выпуске! Если кто-то может указать мне способ использовать эту функцию, но при отладке это будет потрясающе. Мне нужно его отлаживать, потому что релиз сборки запускает гораздо больше задач, таких как смена версии, фиксация на git, push и т. Д. Это только для ночной сборки, поэтому ее нужно отлаживать.