J'utilise Gradle avec Android Studio 3.x et il est multi-module et comprend des bibliothèques Java.
Je souhaite implémenter le test de la bibliothèque Java avec Spock.
Il existe différentes manières d'installer Spock, mais il sera ajouté au module build.gradle. Cependant, le point important de cet article est le destinationDir sur la dernière ligne.
apply plugin: 'groovy'
dependencies {
testCompileOnly 'org.codehaus.groovy:groovy:2.5.3'
testCompileOnly('org.spockframework:spock-core:1.2-groovy-2.5') {
exclude module: 'groovy-all'
}
}
compileTestGroovy.destinationDir = compileTestJava.destinationDir
Lorsqu'elle est exécutée à partir du triangle qui apparaît à gauche de la classe de test dans hoge.groovy, la taxe de gradle exécute compile (compileTestGroovy) comme groovy et .class est généré, mais c'est hoge / build / classes / groovy / test Généré dans /
.
Mais tester dans Android Studio? Semble être JUnit, il semble donc qu'il se réfère à .class de hoge / build / classes / java / test /
.
Par conséquent, le test ne peut pas être exécuté avec l'erreur Classe non trouvée:" hogehoge "Suite de tests vide.
.
Par conséquent, définissez compileTestGroovy.destinationDir
sur la même destination de sortie .class que Java.
Recommended Posts