Was ist der Unterschied zwischen den Ordnern src / androidtest und src / test?

119

In einem Projekt gibt es in Android Studio standardmäßig zwei Testordner.

Der erste ist src/androidTest. Dieser Ordner war bereits in der vorherigen Version von Android Studio vorhanden. Trotzdem gibt es jetzt standardmäßig einen neuen Testordner src/testund eine neue Abhängigkeit testCompile 'junit: junit: 4.12'in build.gradle.

Welchen Ordner verwende ich zum Testen? Was sind die Unterschiede zwischen den beiden?

lopez.mikhael
quelle

Antworten:

134

src/androidTest ist für Unit-Tests mit Android-Instrumentierung.

src/testist für reine Unit-Tests, die kein Android-Framework beinhalten. Sie können hier Tests ausführen, ohne sie auf einem realen Gerät oder einem Emulator auszuführen.

Sie können beide Ordner verwenden. Verwenden Sie den ersten, um Code zu testen, der das Android-Framework verwendet. Verwenden Sie den zweiten, um Code zu testen, bei dem es sich um reine Java-Klassen handelt. Die Methoden zum Schreiben von Tests sind fast gleich.

Weitere Informationen hier: http://developer.android.com/tools/testing/testing_android.html

Bipi
quelle
URL umgeleitet an: developer.android.com/studio/test/index.html
Guillaume Husta
Sie haben gerade meinen Tag gerettet
C Johnson
Was ist mit androidTestDebug?
the_prole
47

Eine gute Informationsquelle in Bezug auf Android-Tests im Allgemeinen ist die Entwicklerseite Best Practices for Testing :

  • Lokale Unit-Tests ( /src/test/java/)

Komponententests, die lokal auf der Java Virtual Machine (JVM) ausgeführt werden. Verwenden Sie diese Tests, um die Ausführungszeit zu minimieren, wenn Ihre Tests keine Android-Framework-Abhängigkeiten aufweisen oder wenn Sie die Android-Framework-Abhängigkeiten verspotten können.

  • Instrumentierte Tests ( /src/androidTest/java/)

Unit-Tests, die auf einem Android-Gerät oder Emulator ausgeführt werden. Diese Tests haben Zugriff auf Instrumentierungsinformationen, z. B. den Kontext der App, die Sie testen. Verwenden Sie diese Tests, wenn Ihre Tests Android-Abhängigkeiten aufweisen, die Scheinobjekte nicht erfüllen können.

https://developer.android.com/training/testing/start/index.html

Leszek Jasek
quelle