Ich verwende Gradle in Android Studio 3.x und es ist multimoduliert und enthält Java-Bibliotheken.
Ich möchte den Test der Java-Bibliothek in Spock implementieren.
Es gibt verschiedene Möglichkeiten, Spock zu installieren, aber es wird dem Modul build.gradle hinzugefügt. Der wichtige Punkt dieses Artikels ist jedoch das destinationDir in der letzten Zeile.
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
Bei der Ausführung aus dem Dreieck, das links von der Testklasse in hoge.groovy angezeigt wird, wird die Steuer von gradle compile (compileTestGroovy) als groovy ausgeführt und .class generiert, aber es ist hoge / build / classes / groovy / test Generiert in /
.
Aber in Android Studio testen? Scheint JUnit zu sein, also scheint es, dass es sich auf .class von hoge / build / classes / java / test /
bezieht.
Infolgedessen kann der Test nicht mit dem Fehler "Klasse nicht gefunden:" hogehoge "Leere Testsuite" ausgeführt werden.
Setzen Sie daher compileTestGroovy.destinationDir
auf dasselbe .class-Ausgabeziel wie Java.
Recommended Posts