AndroidX Test ist eine Sammlung von Jetpack-Bibliotheken, mit denen du Tests ausführen kannst gegen Android-Apps. Es bietet auch eine Reihe von Tools, die Ihnen beim Verfassen dieser Tests durchführen.
AndroidX Test stellt beispielsweise JUnit4-Regeln bereit, um Aktivitäten zu starten und in JUnit4-Tests interagieren können. Es enthält auch Frameworks für UI-Tests wie Espresso, UI Automator und Robolectric-Simulator.
AndroidX-Testbibliotheken hinzufügen
Um AndroidX Test verwenden zu können, müssen Sie die Abhängigkeiten Ihres App-Projekts ändern in Ihrer Entwicklungsumgebung.
Gradle-Abhängigkeiten hinzufügen
So ändern Sie die Abhängigkeiten Ihres App-Projekts:
- Schritt 1: Öffnen Sie die Datei
build.gradle
für Ihr Gradle-Modul. - Schritt 2: Prüfen Sie im Bereich mit den Repositories, ob das Maven von Google Repository angezeigt:
allprojects {
repositories {
jcenter()
google()
}
}
- Schritt 3: Fügen Sie für jedes AndroidX-Testpaket, das Sie verwenden möchten, das zugehörige Paket hinzu.
in das Feld
Abhängigkeiten. Um beispielsweise das Paket
espresso-core
hinzuzufügen, fügen Sie den Parameter folgenden Zeilen:
Cool
dependencies { ... androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion" }
Kotlin
dependencies { ... androidTestImplementation('androidx.test.espresso:espresso-core:$espressoVersion') }
Dies sind die häufigsten verfügbaren AndroidX-Testabhängigkeiten:
Cool
dependencies { // Core library androidTestImplementation "androidx.test:core:$androidXTestVersion0" // AndroidJUnitRunner and JUnit Rules androidTestImplementation "androidx.test:runner:$testRunnerVersion" androidTestImplementation "androidx.test:rules:$testRulesVersion" // Assertions androidTestImplementation "androidx.test.ext:junit:$testJunitVersion" androidTestImplementation "androidx.test.ext:truth:$truthVersion" // Espresso dependencies androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion" androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion" androidTestImplementation "androidx.test.espresso:espresso-intents:$espressoVersion" androidTestImplementation "androidx.test.espresso:espresso-accessibility:$espressoVersion" androidTestImplementation "androidx.test.espresso:espresso-web:$espressoVersion" androidTestImplementation "androidx.test.espresso.idling:idling-concurrent:$espressoVersion" // The following Espresso dependency can be either "implementation", // or "androidTestImplementation", depending on whether you want the // dependency to appear on your APK’"s compile classpath or the test APK // classpath. androidTestImplementation "androidx.test.espresso:espresso-idling-resource:$espressoVersion" }
Kotlin
dependencies { // Core library androidTestImplementation("androidx.test:core:$androidXTestVersion") // AndroidJUnitRunner and JUnit Rules androidTestImplementation("androidx.test:runner:$testRunnerVersion") androidTestImplementation("androidx.test:rules:$testRulesVersion") // Assertions androidTestImplementation("androidx.test.ext:junit:$testJunitVersion") androidTestImplementation("androidx.test.ext:truth:$truthVersion") // Espresso dependencies androidTestImplementation( "androidx.test.espresso:espresso-core:$espressoVersion") androidTestImplementation( "androidx.test.espresso:espresso-contrib:$espressoVersion") androidTestImplementation( "androidx.test.espresso:espresso-intents:$espressoVersion") androidTestImplementation( "androidx.test.espresso:espresso-accessibility:$espressoVersion") androidTestImplementation( "androidx.test.espresso:espresso-web:$espressoVersion") androidTestImplementation( "androidx.test.espresso.idling:idling-concurrent:$espressoVersion") // The following Espresso dependency can be either "implementation", // or "androidTestImplementation", depending on whether you want the // dependency to appear on your APK"s compile classpath or the test APK // classpath. androidTestImplementation( "androidx.test.espresso:espresso-idling-resource:$espressoVersion") }
Auf der Seite Versionshinweise finden Sie eine Tabelle mit den aktuellen Versionen Artefakt.
Weitere Informationen finden Sie im Paketindex oder Klassenindex. Dokumentation zu diesen Bibliotheken.
Projekte mit verworfenen Klassen
Wenn deine App Tests verwendet, die auf verworfenen JUnit3-basierten android.test
basieren
Klassen wie InstrumentationTestCase
und TestSuiteLoader
, fügen Sie
die folgenden Zeilen im Abschnitt android
der Datei an:
android {
...
useLibrary 'android.test.runner'
useLibrary 'android.test.base'
useLibrary 'android.test.mock'
}
Manifestdeklarationen hinzufügen
Um Tests auszuführen, die auf verworfenen JUnit3-basierten android.test
-Klassen beruhen, fügen Sie
die erforderlichen <uses-library>
-Elemente zum Manifest deiner Test-App hinzufügen. Für
Wenn Sie beispielsweise Tests hinzufügen, die von der Bibliothek android.test.runner
abhängen, fügen Sie
das folgende Element in das Manifest Ihrer App ein:
<!-- You don't need to include android:required="false" if your app's
minSdkVersion is 28 or higher. -->
<uses-library android:name="android.test.runner"
android:required="false" />
Um die Bibliothek zu ermitteln, die eine bestimmte JUnit-basierte Klasse enthält, siehe JUnit-basierte Bibliotheken.
Überlegungen bei der Verwendung eingestellter Klassen und bei der Ausrichtung auf Android 9 oder
höher
Die Informationen in diesem Abschnitt gelten nur, wenn deine App auf Android 9 (API-Level 28) ausgerichtet ist. oder höher und die SDK-Mindestversion für Ihre App ist auf Android 9 festgelegt.
Die android.test.runner
-Bibliothek hängt implizit vom android.test.base
ab.
und android.test.mock
-Bibliotheken. Wenn Ihre App nur Kurse von
android.test.base
oder android.test.mock
, können Sie die Bibliotheken einschließen, indem Sie
sich selbst:
<!-- For both of these declarations, you don't need to include
android:required="false" if your app's minSdkVersion is 28
or higher. -->
<uses-library android:name="android.test.base"
android:required="false" />
<uses-library android:name="android.test.mock"
android:required="false" />