У меня есть проект Android (созданный Cordova), в который я хочу добавить (инструментальные) тесты. У него есть только один MainActivity.java
, который нужно протестировать.
Обычно это означает добавление некоторых зависимостей к build.gradle
и создание файла /src/androidTest/java/org/example/package/MainActivityTest.java
с классом MainActivityTest
и некоторыми методами тестирования. (В Android Studio я могу даже сгенерировать их, используя «Выполнить» -> «Записать тест эспрессо» - так просто и работает).
К сожалению, теперь у меня есть требование, чтобы эти тестовые файлы действительно находились вне каталога проекта. В существующем проекте Cordova должны быть только минимальные изменения (поскольку он регенерируется и обрабатывается как артефакт сборки). MainActivity.java
лучше всего находиться в той же корневой папке, где находится проект Android в /android
.
Как я могу этого добиться?
Изменения build.gradle
можно добавить в файл build-extras.gradle
, который уже включен в настоящий build.gradle
, так что об этом позаботятся.
Но я понятия не имею, как разместить MainActivityTest.java
вне структуры папок проекта и при этом запустить его внутри проекта.
Для iOS вы можете связать внешние файлы с проектом с абсолютными путями. Что-то подобное было бы идеально и здесь.
Я посмотрел на sourceSets
, но я не уверен, как интегрировать это в проект Cordova Android, в котором уже есть это не по умолчанию (я думаю?) 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']
}
}
...
}