Como colocar os arquivos de teste do Android (instrumentação) fora do diretório do projeto?
Eu tenho um projeto Android (gerado por Cordova) ao qual quero adicionar testes (instrumentação). Tem apenas umMainActivity.java
isso deve ser testado.
Normalmente, isso significa adicionar algumas dependências aobuild.gradle
e criando um arquivo/src/androidTest/java/org/example/package/MainActivityTest.java
com umMainActivityTest
classe e alguns métodos de teste. (No Android Studio, posso até gerar esses itens usando Run -> "Record Espresso Test" - tão simples e funciona).
Infelizmente, agora eu tenho o requisito de que esses arquivos de teste realmente estejam vivoslado de fora o diretório do projeto. Deve haver apenas mudanças mínimas no projeto Cordova existente (pois ele é regenerado e tratado como um artefato de construção). oMainActivity.java
seria melhor na mesma pasta raiz em que o projeto Android está/android
.
Como posso conseguir isso?
obuild.gradle
alterações podem ser adicionadas a umbuild-extras.gradle
arquivo que o realbuild.gradle
já inclui, portanto, isso é resolvido.
Mas não tenho ideia de como colocar oMainActivityTest.java
fora da estrutura da pasta do projeto e ainda poderá executá-la dentro do projeto.
Para iOS, você pode vincular arquivos externos ao projeto com caminhos absolutos. Algo assim seria perfeito aqui também.
Eu olheisourceSets
mas não sei como integrar isso no projeto Cordova Android, que já possui esse padrão (acho?)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']
}
}
...
}