Wenn Sie Java-Bibliothekstests mit Spock in mehreren Modulen mit Gradle in Android Studio 3 implementieren möchten

Was willst du tun

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.

Einführung

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

Kommentar

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 / . スクリーンショット 2018-11-17 21.37.41.png

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

Wenn Sie Java-Bibliothekstests mit Spock in mehreren Modulen mit Gradle in Android Studio 3 implementieren möchten
Code, der verwendet werden soll, wenn Sie Json nur mit Standardbibliotheken in Java verarbeiten möchten
Wenn Sie Annotation in Java 8 dynamisch ersetzen möchten
Sie verwenden derzeit Java 6. Lösung in Android Studio Gradle
Code, der verwendet wird, wenn Sie Json nur mit Standardbibliotheken in Java (verbesserte Version) verarbeiten möchten. Gson ist nicht erforderlich
Quelle zur Anzeige des Zeichenarrays mit numberPicker in Android Studio (Java)
Von Java nach C und von C nach Java in Android Studio
Das erste, was Sie tun müssen, wenn Sie mit Heroku auf GitHub mit Eclipse auf Java zufrieden sein möchten
3 Möglichkeiten zum Importieren von Bibliotheken in Android Studio
Wenn Sie InputStream in JDBI3 binden möchten
Ein Hinweis, wenn Sie Tupel in Java möchten
Android Studio-Memo, in dem Toast-Zeichen in großer Größe angezeigt werden sollen
[Android Studio] Ich möchte eine Maven-Bibliothek unter Android verwenden
[Android Studio] Ich möchte Einschränkungen für die in EditText [Java] registrierten Werte festlegen.
[Ruby + Rails] Wenn Sie sich zusammen mit der Benutzerregistrierung in der Mailchimp-Mailingliste registrieren möchten
Siehe C ++ im Android Studio-Modul (Java / Kotlin)
So schreiben Sie in die Modellklasse, wenn Sie mit PlayFramework Binärdaten in der Datenbank speichern möchten
Verwenden Sie JLine, wenn Sie Tastenanschläge auf der Konsole zeichenweise in Java verarbeiten möchten
Optimieren Sie Java-Tests mit Spock
Wenn Sie explizit ODER oder UND mit Ransack schreiben möchten
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben
Dynamisches Wechseln von JDKs beim Erstellen von Java mit Gradle
Ich möchte verschiedene Funktionen mit Kotlin und Java implementieren!
docker-compose.yml, wenn Sie MySQL auf Docker laufen lassen möchten
lombok.config, wenn Sie @Qualifier mit lombok an @RequiredArgsConstructor übergeben möchten
In Java 10, wenn Gradle Eclipse abgeschlossen ist und JavaSE-1.10 herauskommt, ...
ProxyFactory ist praktisch, wenn Sie AOP mit Spring testen möchten!
[Java] Ich möchte mit dem Schlüssel im Objekt eindeutig arbeiten
Versuchen Sie, Yuma in Java zu implementieren
[Wörter, die mir geschrieben wurden, als ich in der ersten Klasse war ⑦] Was ich möchte, dass Sie zumindest in die Visual Studio Code-Erweiterung aufnehmen
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben (PowerMockito Edition)
[Android Studio] Was Sie versuchen sollten, wenn Sie in die Hölle geraten
(Beschränkt auf Java 7 oder höher) Ich möchte, dass Sie Objekte in Objects.equals vergleichen
Ich möchte für jedes Array mit Lambda-Ausdruck in Java
So implementieren Sie die Datumsberechnung in Java
So implementieren Sie den Kalman-Filter mit Java
Versuchen Sie, n-ary Addition in Java zu implementieren
So erzwingen Sie Codierungskonventionen in Java
Wenn Sie sich über java.lang.UnsupportedClassVersionError ärgern: com / android / build / gradle / AppPlugin: Nicht unterstützte major.minor-Version 52.0 in Build Gradle nach Android Studio 2.3
Verwendung von ExpandableListView in Android Studio
Wenn ich versuche, eine Google Map-Vorlage in Android Studio zu erstellen, ärgere ich mich über Files \ Java \ jdkXXX \ bin \ java.exe '', das mit einem Exit-Wert ungleich Null 2 abgeschlossen ist.
Was tun, wenn Sie glauben, dass Sie mit IntelliJ IDEA CE nicht Groovy-> Java können?
Sogar in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben (Javassist zweite Abkochung)
Wenn Sie irgendwo einen Fehler melden möchten, wenn Sie graphql-spring-boot mit Spring Boot verwenden
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 (Black Magic) ausgeben.
Ich möchte eine E-Mail in Java senden.
Führen Sie eine statische Code-Analyse mit Checkstyle mit Java + Gradle durch
Ich möchte Java8 für jeden mit Index verwenden
Ich möchte APP_HOME an Logback in Gradle übergeben
Wenn Sie die Methode außerhalb verwenden möchten
rsync4j - Ich möchte rsync in Java berühren.
[Swift] Verwenden Sie nonzeroBitCount, wenn Sie in Swift popcnt möchten
Versuchen Sie, TCP / IP + NIO mit JAVA zu implementieren
Schwierigkeiten bei der Implementierung von Alarm Manager in Android Studio
[Ruby] Wenn Sie mehrere Zeichen ersetzen möchten
Sie müssen nicht zweimal schreiben, wenn Sie in Java ein rechtwinkliges Dreieck erstellen
Eine Geschichte, bei der Sie bei der parallelen Ausführung mit Java auf Thread-Sicherheit achten müssen
Sie müssen den Host auch beim Remote-Debugging mit Java 9 oder höher angeben