У меня есть проект Android (созданный Cordova), который я хочу добавить (контрольно-измерительные) тесты. Он должен тестировать только один MainActivity.java
.
Обычно это означает добавление некоторых зависимостей к build.gradle
и создание файла /src/androidTest/java/org/example/package/MainActivityTest.java
с классом MainActivityTest
и некоторыми методами тестирования. (В Android Studio я даже могу сгенерировать их с помощью Run → "Record Espresso Test" - так просто и работает).
К сожалению, теперь у меня есть требование, чтобы эти тестовые файлы действительно находились вне каталога проекта. Должны быть только минимальные изменения в существующем проекте Кордовы (поскольку он регенерируется и обрабатывается как артефакт сборки). MainActivity.java
лучше всего находиться в той же корневой папке, где проект Android находится в /android
.
Как я могу это достичь?
Изменения build.gradle
могут быть добавлены в файл build-extras.gradle
, который уже содержит реальный build.gradle
, поэтому об этом позаботятся.
Но я понятия не имею, как разместить MainActivityTest.java
вне структуры папок проекта и все еще иметь возможность запускать его внутри проекта.
Для iOS вы можете связать внешние файлы с проектом с абсолютными путями. Что-то вроде этого было бы идеальным и здесь.
Я посмотрел на sourceSets
, но я не уверен, как интегрировать его в проект Android от Cordova, у которого уже есть этот параметр по умолчанию (я думаю?) sourceSets
:
android {
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs']
}
}
...
}