Archiv der Versionshinweise zum Test

AndroidX Test Espresso 3.1.1, Runner 1.1.1, Rules 1.1.1, Monitor 1.1.1 AndroidTestOrchestrator 1.1.1, Core 1.1.0, Truth 1.1.0, JUnit 1.1.0 (13.12.2018)

Dies ist die stabile Version des AndroidX-Tests 1.1.0

  • Kern
    • Machen Sie das Aktivitätsszenario zu unterstützenden Aktivitäten, die eine andere Aktivität starten.

AndroidX Test Espresso 3.1.1-beta01, Runner 1.1.1-beta01, Rules 1.1.1-beta01, Monitor 1.1.1-beta01 AndroidTestOrchestrator 1.1.1-beta01, Core 1.1.0-beta01 Truth 1.1.0-beta01 Truth 1.1.0-1801, JUnit 1801, JUnit 1801

  • Kern
    • Neues Artefakt für Core-KTX-Kotlin-Erweiterung! Enthält eine Kotlin-freundliche ActivitySzenario.launchActivity API
    • Neue ActivitySzenario API zum Starten von Aktivitäten mit benutzerdefinierten Intents
    • Neue ActivitySzenario API zum Empfang eines Aktivitätsergebnisses
    • Aktivitätsszenario schließen lassen
  • Espresso
    • Ändern Sie withResourceNameMatcher und HumanReadables so, dass sie mit API 28 kompatibel sind.
    • Beschreibung von „ReplaceTextAction“ mit „stringToBeSet“ aktualisieren
    • Unterstütze Espresso im pausierten Looper-Modus von Robolectric.
  • JUnit
    • Neue ActivitySzenarioRule API zum automatischen Starten und Schließen einer Aktivität beim Einrichten und Teardown von Tests
    • Neues junit-ktx-Kotlin-Erweiterungsartefakt! Beinhaltet eine für Kotlin geeignete ActivitySzenarioRule API
  • Läufer
    • Das Verhalten von „-e package“ und „-e testFile“ beim Empfang von Paketen einheitlich gestalten
  • Richtig
    • bool, parcelable und parcelableAsType BundleSubject APIs hinzufügen

AndroidX Test Espresso 3.1.0, Runner 1.1.0, Rules 1.1.0, Monitor 1.1.0 AndroidTestOrchestrator 1.1.0, Core 1.0.0 Truth 1.0.0, JUnit 1.0.0 (24.10.2018)

  • Alle
    • „minSdkVersion“ auf „14“ und „targetSdkVersion“ auf „28“ festlegen
  • Espresso
    • "withContentDescription" korrigiert, damit es auch mit Typen ohne Strings funktioniert
    • Unterstützung für die Nutzung von Espresso auf Robolectric
    • Problem 72798625: Espresso ViewMatchers.withText funktioniert nicht, wenn „textAllCaps“ aktiviert ist
    • Unterstützung für das Injizieren einer Abfolge von Bewegungsereignissen hinzufügen
  • Intents
    • Beta-API zum Abrufen der Liste von Intents hinzufügen. Ist für die Verwendung mit neuen Wahrheitsbestätigungen vorgesehen.
  • Läufer
    • Unterstützung für Instant-Apps hinzufügen
    • androidx.test.runner.AndroidJUnit4 verwerfen und durch androidx.test.ext.junit.runners.AndroidJUnit4 ersetzen
  • Beobachten
    • androidx.test.InstrumentationRegistry einstellen und durch androidx.test.platform.app.InstrumentationRegistry und androidx.test.core.app.ApplicationProvider ersetzen
  • AndroidTestOrchestrator
    • Aktivieren Sie die Verarbeitung der Orchestrator-Abdeckung nur, wenn sowohl die Argumente „coverage“ als auch „coverageFilePath“ übergeben werden.
    • Nur auf Debugger warten, wenn „-debug“ festgelegt ist, aber nicht auf das Auflisten von ATO-Testfällen. Ein neues OrchestratorDebug-Flag wurde zum Debugging des Orchestrators selbst hinzugefügt.
  • Kern
    • Neues Artefakt! Umfasst neue APIs, die lokale und On-Device-Tests für Folgendes unterstützen:
      • Kontext abrufen: ApplicationProvider
      • Aktivitätslebenszyklen steuern: ActivitySzenario(Beta)
      • Builder für MotionEvent, PackageInfo
      • Parceables-Dienstprogrammklasse
  • Richtig
    • Neues Artefakt! Umfasst benutzerdefinierte Truth-Themen für Benachrichtigungen, Intents, Sets, Parcelables und MotionEvent
  • JUnit
    • Neues Artefakt! Umfasst die JUnit-Runner-Klasse androidx.test.ext.junit.runners.AndroidJUnit4, die sowohl lokale als auch On-Device-Tests unterstützt.

Espresso 3.0.2-beta1, Runner 1.0.2-beta1, Rules 1.0.2-beta1, Monitor 1.0.2-beta1, AndroidTestOrchestrator 1.0.2-beta1 (16.04.2018)

  • Espresso
    • Wichtige API-Änderung:
      • Wir wurden in Problem 64062890 darauf hingewiesen, dass wir Guava Optional in unserer öffentlichen API verwenden. Das war ein furchtbares Versäumnis von uns . Daher wurde in dieser Version eine funktionsgefährdende Änderung an der öffentlichen API vorgenommen, um dieses Problem zu beheben. Wir haben einen Ugly-Wrapper um die Klasse Guava Optional eingeführt, namens „EspressoOptional“, der sich unter dem Namespace „android.support.test.espresso.util“ befindet. Entwickler, die die gehackte Guava Optional API genutzt haben, müssen ihre Importe und Referenzen ändern, um während des Updates auf diese neue Version EspressoOptional zu verwenden. Wir entschuldigen uns für eventuelle Unannehmlichkeiten.
    • APIs „onView()“ und „onData()“ sind jetzt als @CheckReturnValue gekennzeichnet, um Fehler zu vermeiden
    • Es wurde korrigiert, dass die Espresso-Core-POM-Datei die "rules"-Abhängigkeit nicht per Espresso-Intents per POM abrufen konnte. Dies sollte eine NoOp-Änderung für Entwickler sein, da Espresso-Intents nicht ohne Espresso-Core verwendet werden können.
    • Problem 65486414: Espresso fehlt Guave-Abhängigkeit
    • Problem 65576174: Espresso IdlingResourceRegistry.sync schlägt fehl beim zweiten Test
    • Problem 65568629: Espresso.onIdle verwendet IdlingRegistry nicht
    • Problem 69333598: Espresso 3.0.1, nicht kompatibel mit play-services-auth:11.6.0 im Android-Bibliotheksmodul.
    • Problem 64062890: Interner optionaler Typ, der über die AdapterViewProtocol-Schnittstelle verfügbar gemacht wird
    • Problem 64091847: Espresso 3.0.0 sollte NICHT vom Test-Runner abhängen
    • Problem 73722050: Espresso-contrib 3.0.2-alpha1-Pakete android.arch.{lifecycle/core}-Klassen
  • Espresso-Fernbedienung
    • Das ist ein brandneues Artefakt. Wir haben alle Multiprozessfunktionen von Espresso außerhalb des Espresso-Core-Artefakts entkoppelt. Dies ist sauberer und sollte die Gesamtgröße und Anzahl der Methoden des Espressokerns erheblich reduzieren.
  • Läufer
    • Kürzen Sie den Stacktrace, wenn er zu groß für eine Binder-Transaktion ist. Da AJUR Fehler über einen Binder-IPC an AM melden muss, müssen wir darauf achten, dass wir das Transaktionslimit von Binder (1 MB pro Prozess) nicht überschreiten.
    • Problem 65828576: TestRequestBuilder stürzt beim Ausführen eines Tests in Klasse mit @ignore ab
    • Problem 37057596: Fehler in @BeforeClass werden nicht behoben.
  • Regeln
    • Achten Sie darauf, nach Lebenszyklusänderungen eine Referenz zu der zu testenden Aktivität freizugeben. Während des Tests kann nun die Aktivität direkt mit dem Verweis von #getActivity() bearbeitet werden. Wenn die Aktivität beendet und neu gestartet wurde, verweist der von #getActivity() zurückgegebene Verweis jetzt immer auf die aktuelle Instanz der Aktivität.
    • Problem 64389280: GrantPermissionRule bietet WRITE_EXTERNAL_STORAGE nicht
    • Problem 37065965: ActivityTestRule gibt nach einer Ausrichtungsänderung einen Datenverlust durch.
    • Problem 75254050: ActivityTestRule aktualisiert die Activity-Instanz während der Konfigurationsänderungen nicht
    • Problem 64464625: UI-Arbeit mit der Methode „Finish()“ der Aktivität kann nicht ausgeführt werden
  • AndroidTestOrchestrator
    • Übergeben Sie -e coverage true -e coverageFilePath /sdcard/foo/-Flags, um Abdeckungsdateien am angegebenen Speicherort zu generieren. Die App muss dazu die Berechtigung zum Schreiben in den angegebenen Speicherort haben. Die Namenskonvention für die Abdeckungsdatei sieht jetzt so aus: com.foo.Class#method1.ec. Hinweis: Dies wird nur im isolierten Modus unterstützt. Außerdem kann es nicht zusammen mit dem coverageFile-Flag von AndroidJUnitRunner verwendet werden. Da sich die generierten Abdeckungsdateien gegenseitig überschreiben.
    • Übergeben Sie das Flag -e clearPackageData, wenn der Orchestrator pm clear context.getPackageName()- und pm clear targetContext.getPackageName()-Befehle zwischen Testaufrufen ausführen soll. Beachten Sie, dass der Kontext im Befehl „clear“ die App im Testkontext ist.
    • Behoben: Wenn ein leerer Test, d. h. kein @Test innerhalb des Ziels, ausgeführt wird, weicht das Testergebnis vom Legacy-Modus ab.
    • Problem 72758547: Test Orchestrator führt dazu, dass die Jacoco-Abdeckungsdaten unvollständig sind; enthält nur Daten des letzten Testlaufs
    • Problem 67916042: Android Test Orchestrator : Ausführung bei Prozessabsturz aufgrund von unzureichendem Arbeitsspeicher gestoppt
    • Problem 77752735: Orchestrator stürzt bei TransactionTooLargeException ab.
    • Problem 77549481: Test Orchestrator sollte nach jedem Test „pm Clear“ ausführen

Espresso 3.0.2-alpha1, Runner 1.0.2-alpha1, Regeln 1.0.2-alpha1, AndroidTestOrchestrator 1.0.2-alpha1 (05.12.2017)

  • Espresso

    • Intents hat jetzt eine aufrufbare Antwort, mit der Tests nach dem Erfassen eines ausgelösten Intents, aber vor der Rückgabe eines Instrumentation.ActivityResult-Objekts ausgeführt werden können.
  • Läufer

    • Teilen Sie das Monitoring-Maven-Artefakt com.android.support.test:monitor:<version> für Nutzer auf, die MonitoringInstrumentation ohne Testausführung und JUnit-Features benötigen.

      Wenn Sie com.android.support.test:runner:<version> verwenden, funktioniert alles wie erwartet, da Gradle das Modul monitor automatisch als Abhängigkeit des Moduls runner abruft.

    • Flag newRunListenerOrderMode hinzugefügt. Bei true werden benutzerdefinierte Listener vor Standard-Listenern ausgeführt. Wir gehen davon aus, dass dieses Verhalten irgendwann zum Standard werden wird.

    • Problem 65828576: TestRequestBuilder stürzt beim Ausführen von Tests in einer mit @Ignore annotierten Klasse ab (eigenständig ohne Testausführung oder JUnit-Features).

  • AndroidTestOrchestrator

    • werden leere Tests jetzt auf dieselbe Weise verarbeitet wie nicht orchestrierte AndroidJUnitRunner.
    • Orchestrator kann jetzt eine sehr große Standardausgabe von AndroidJUnitRunner verarbeiten.

Espresso 3.0.1, Runner 1.0.1, Rules 1.0.1, AndroidTestOrchestrator 1.0.1 (28.08.2017)

  • Espresso

    • Eine IdlingPolicy-Option wurde hinzugefügt, um onTimeout() zu unterdrücken, wenn der VM ein Schritt-Debugger hinzugefügt ist.
    • Probleme 64024656, 64247586 und 64525881: Es werden nur Fehler gemeldet, die auf ein fehlgeschlagenes Laden von Klassen zurückzuführen sind, es sei denn, ein Nutzer lädt bestimmte Klassen durch Einfügen des Klassen-Runner-Arguments -e.
    • Problem 64877246: Fehlende Klassen zur JAR-Quellendatei hinzugefügt.
  • Läufer

    • Die ShardingFilter-Logik wurde vereinfacht.
    • Problem 65025743: Der @RequiresDevice-Filter unterstützt jetzt FTL-Emulatoren.
  • AndroidTestOrchestrator

    • Duplizieren Sie keine Fehler in Berichten. Wenn ein Testprozess nach einem Fehlschlagen abstürzt, wird jetzt nur ein Fehler für den Test gemeldet.
    • Problem mit Javadoc für Orchestrator behoben.
    • Tests werden jetzt als verpasst angezeigt, wenn der Remote-Prozess abstürzt.
    • Ab jetzt werden ignorierte Testläufe verarbeitet.
    • Ignorierte Testläufe werden jetzt aus der Fußzeile ausgeschlossen, um ältere Ergebnisse abzugleichen.
    • Probleme mit Laufzeitberechtigungen wurden behoben. Unter Android 7.0 (API-Level 24) und höher werden jetzt Testberichte auf die SD-Karte geschrieben.

Espresso 3.0.0, Runner 1.0.0, Rules 1.0.0, AndroidTestOrchestrator 1.0.0 (25.07.2017, Ankündigung)

Wichtige Änderungen

  • Alle Artefakte
    • API-Level unter 15 werden nicht mehr unterstützt. Die Mindestversion für das SDK verweist jedoch immer noch auf API-Level 9, damit Nutzer Zeit für ein Upgrade haben.
  • Espresso
    • Die verworfene Klasse android.support.test.espresso.contrib.CountingIdlingResource wurde gelöscht und in android.support.test.espresso.idling.CountingIdlingResource verschoben.
    • Guava wird jetzt in JAR-Dateien über einen anderen "internen" Namespace verschoben. Wenn Sie die Guava API versehentlich über Espresso-Namespaces verwenden, können Fehler auftreten.
      • Entfernen Sie alle Verweise auf die schattierte Guava (.core.deps.guava.)
      • Support Library-Version auf Version 25.4.0 oder höher aktualisieren

Bekannte Probleme

  • AndroidTestOrchestrator
    • Die Runner-Argumente -e numShards und -e shardIndex werden derzeit nicht unterstützt
    • Parameterisierte Tests werden derzeit nicht unterstützt.

Neue Funktionen

  • Regeln
  • AndroidTestOrchestrator
    • Android Test Orchestrator bietet eine neue Möglichkeit zum Erfassen und Ausführen von Tests. Der Schwerpunkt liegt dabei auf Richtigkeit und Isolation. Orchestrator ist ein unabhängiger Instrumentierungsprozess, der für jeden Test einen Instrumentierungs-Runner-Prozess generiert und die Ergebnisse erfasst.
      • Anwendungsabstürze deaktivieren die Runner-Instrumentierung, aber nicht den Orchestrator, sodass Ihre Testsuite weiterlaufen kann.
      • Erfordert die Installation des Orchestrator-APKs: 'com.android.support.test:orchestrator:1.0.0'
      • Version 1.0 hat nur eine Befehlszeilenschnittstelle; die Integration in Android Studio und Firebase Test Labs ist geplant

Fehlerkorrekturen

  • Espresso
    • Verbesserte Synchronisierung der Root-Ansicht für eine deutliche Reduzierung der Unzuverlässigkeit
    • Beschädigung von IdlingResourceRegistry beheben
    • Bessere Synchronisierung von IdlingResource-Objekten
    • Problem 37132680: Espresso wartet nicht, bis Dialogfelder erstellt wurden, bevor die nächste Aktion ausgeführt wird.
    • Problem 37103280: Espresso sollte ProGuard-Nutzerregeln ausliefern, damit Nutzer diese nicht hinzufügen müssen
    • Problem 37094726: Espresso-Intents enthalten ein unnötiges Anwendungslabel
    • Problem 37093953: Espresso: Keine Prüfung auf Null-/leeren Fehlertext verfügbar
    • Problem 37071776: espresso-core bettet die .pom-Dateien von Guava ein
    • Problem 37062612: NPE in release()
    • Problem 37063389: Wenn Guava und espresso-web als androidTest-Abhängigkeiten bestehen, wird keine Kompilierung durchgeführt
    • Problem 37070533: Unterstützung für NavigationView in der Android Design Support Library hinzugefügt
  • Runner
    • Probleme mit der Verwendung von @UiThreadTest in Kombination mit @Test(timeout = 123) beheben
    • Runner-Argument -e notClass wurde korrigiert
    • Fehlerkorrektur für -e log zur Unterstützung von JUnit3- und JUnit4-Testsuiten sowie Parameterized- und Enclosed-Runnern
    • Problem 37663530: Warten Sie, bis alle Aktivitäten vor und nach jeder Testmethode abgeschlossen sind
    • Problem 37132680: Espresso wartet nicht, bis Dialogerstellung abgeschlossen ist, bevor die nächste Aktion durchgeführt wird
    • Problem 37123213: @RequiresDevice bei x86_64 ABI ignoriert
    • Problem 37101485: Einige vom Manifest bereitgestellte Argumente für AndroidJUnitRunner wie Testgröße, Annotationen und Fehlerbehebung werden ignoriert
    • Problem 37082857: Die halbparallele Espresso-Testausführung schlägt bei statischen Objekten fehl
    • Problem 37063396: Kontext nicht mit ProviderTestCase2 initialisiert (Ursache NullPointerException)

Weitere wichtige Änderungen

  • Binärprogramme werden jetzt über Google Maven veröffentlicht
  • Größe der JAR-Dateien für espresso-core und espresso-web verringert – bei eingebetteten Abhängigkeiten wird jetzt ProGuard angewendet
  • Alle .aar-Dateien enthalten jetzt ProGuard-Regeln
  • Freigegebenen Artefakten proguard_library.cfg Dateien hinzufügen
  • Für die Tapper-Schnittstelle ist eine neue Version von sendTap() verfügbar, die implementiert werden soll.

Externe Beiträge

Espresso 2.2.2, Runner/Rules 0.5 (22.02.2016, Stummer Release)

Neue Funktionen

  • Espresso
    • Problem 194253: Unterstützung für NavigationView in Android Support Design Library hinzugefügt
    • Überprüfungen für aktivierte Animationen und Übergänge wurden hinzugefügt.
    • Neue ViewMatcher API: withResourceName()

Fehlerkorrekturen

  • Espresso
    • Problem 195331: Espressokern bettet die Pom-Dateien von Guava ein
    • Die Zählung der inaktiven Ressource wurde aus dem Espressobeitrag verschoben
  • Regeln
    • Problem 187249: NPE in Intents.release()
  • Runner
    • Problem 196066: Das Argument -e log true in AndroidJUnitRunner umgeht den tatsächlichen Test nicht.
    • Auf Debugger in onCreate() des Runners warten
    • Alle unterstützten Testanmerkungen wurden von der Plattform in den ATSL verschoben
    • Der Stacktrace-Dump „Keine JSBridge“ wurde entfernt
    • Fester AndroidAnnotatedBuilder

Weitere wichtige Änderungen

  • Die Betaphase von ActivityTestRule, UiThreadTestRule, IntentsTestRule und ServiceTestRule ist beendet
  • Datei mit Einstellungen für den Codestil für eine einheitliche Codeformatierung hinzufügen

Espresso 2.2.1, Runner/Rules 0.4 (15.09.2015)

Neue Funktionen

  • Regeln
    • Neuer IntentsTestRule-Konstruktor wurde hinzugefügt, um vollständig mit ActivityTestRule kompatibel zu sein.
  • Runner
    • Multidex-Sonderfallinstallation für API-Level 15 und niedriger hinzugefügt
    • Ausschlussfilter zu Klasse und Paket hinzugefügt:
      • Alle Tests mit Ausnahme der Tests in einer bestimmten Klasse ausführen: adb shell am instrument -w -e notClass com.android.foo.FooTest
      • Alle bis auf einen Test ausführen: adb shell am instrument -w -e notClass com.android.foo.FooTest#testFoo
      • Alle Tests mit Ausnahme eines bestimmten Pakets ausführen: adb shell am instrument -w -e notPackage com.android.foo.bar

Externe Beiträge

  • Espresso
    • 157911: Ansicht-Matcher für den Eingabetyp in einem EditText-Objekt hinzufügen
    • 157912: Ansicht-Matcher zum Abgleichen von Fehlertexten in einem EditText-Objekt hinzufügen
    • 150674: DrawerActions-Unterstützung für Schubladen mit beliebiger Schwerkraft hinzufügen
    • 150744: DrawerActions wird nicht mehr ausgegeben parentListener
    • 153303: Die in der Option „Ist die Schublade offen oder geschlossen?“ angegebene Schwerkraft
    • 157910: Fügen Sie DrawerLayout-Factorys für die offene und geschlossene Aktion hinzu.

Fehlerkorrekturen

  • Espresso
    • ViewActions.closeSoftKeyboard() stellt nun sicher, dass die Softtastatur vollständig verschwunden ist.
    • Synchronisierungsproblem mit der Espresso.pressBack()-Methode von Espresso auf API-Ebene 21 und höher behoben
    • Die Synchronisierung von Animationen beim Schließen der Tastatur auf API-Level 23 wurde korrigiert.
  • Regeln
    • Fehlerkorrektur für ServiceTestRule auf API-Level 23. startService() muss immer mit einem expliziten Intent aufgerufen werden.
  • Runner
    • Fehlerhafte JaCoCo-Unterstützung für Gradle korrigiert
    • Unterstützung für defekte Testfragmentierung behoben
    • Inkonsistenter Status im Test-Runner nach Zeitüberschreitungen des Stiltests von JUnit3 behoben

Weitere wichtige Änderungen

  • Javadoc-Fehlerbehebungen und verbesserte Fehlermeldungen
  • suite()-Methoden und Initialisierungsfehler bei der Verwendung von Methodenfiltern ignorieren

Espresso 2.2 / ATSL 0.3 (09.06.2015)

Neue Funktionen

  • espresso-web 2.2
    • Neuer WebView-Support
  • Espresso-Core 2.2
    • Zur Verwendung von dagger v2 migriert
    • Migration zur Verwendung von Hamcrest Version 1.3
  • espresso-contrib 2.2
    • Prüfung auf Barrierefreiheit
    • Gravitationsunterstützung von DrawerActions
  • Regeln 0.3
    • DisableOnAndroidDebug Regel
  • runner 0.3
    • Upgrade von JUnit v4.10 auf JUnit v4.12
    • Migration zur Verwendung von Hamcrest Version 1.3

Fehlerkorrekturen

  • Problem mit der DrawerActions-Information „ParentListener“ behoben
  • Annahmefehler werden jetzt als Ignorieren-Test und nicht als fehlgeschlagener Test behandelt
  • Behebung von MonitoringInstrumentation-leckeren Aktivitätsinstanzen über ExecutorService
  • Problem behoben, bei dem verwaiste Aktivitäten im Status „Gestoppt“ hängen geblieben sind
  • Aktualisieren Sie Until.scrollFinished(), um „true“ zurückzugeben, wenn keine Scroll-Ereignisse generiert wurden. Schutz vor potenzieller NPE in UiObject2#setText().

Espresso 2.1, Test Runner/Rules 0.2 und UIAutomator 2.1.0 (21.04.2015)

Wichtige Änderungen

  • Das Test-Runner-Artefakt wurde in zwei Teile aufgeteilt und der Name wurde von com.android.support.test:testing-support-lib:0.1 in com.android.support.test:runner:0.2 und com.android.support.test:rules:0.2 geändert.

Neue Funktionen

  • espresso-intents: Mockito-ähnliche API, die hermetische Interaktivitätstests ermöglicht, indem Testautoren ausgehende Intents verifizieren und Stubs ausgeben können.
    • IntentsTestRule: erweitert ActivityTestRule, initialisiert und gibt Espresso-Intents in funktionalen UI-Tests frei
  • Espresso-Core
    • ViewActions: Möglichkeit zum Ausführen globaler Assertions vor dem Ausführen von Aktionen hinzugefügt. Dies ist nützlich für andere Frameworks, die auf Espresso aufbauen, um den Status der Ansichtshierarchie zu validieren, während eine vorhandene Espresso-Testsuite ausgeführt wird.
    • ViewMatchers.withContentDescription() resId Überlastung
  • Regeln
    • ActivityTestRule: Diese Regel ermöglicht Funktionstests für eine einzelne Aktivität.
    • Annotationen UiThreadRule und UiThreadTest: Mit dieser Regel kann die mit UiThreadTest annotierte Testmethode im Hauptthread (oder UI-Thread) der Anwendung ausgeführt werden.
    • ServiceTestRule: Diese Regel ermöglicht Funktionstests für einen Dienst.
  • Runner
    • ApplicationLifecycleCallback: Callback zum Überwachen von Ereignissen im Anwendungslebenszyklus
    • Alle Runner-Argumente können jetzt auch in der Android-Manifestdatei mit einem <meta-data>-Tag angegeben werden.
  • UIAutomator
    • UiDevice.dumpWindowHierarchy() kann jetzt eine File oder OutputStream akzeptieren

Fehlerkorrekturen

  • Espresso
    • Der Cursor-Matcher gibt jetzt false zurück, wenn die Spalte nicht gefunden wurde, damit Hamcrest zum nächsten Cursor wechseln kann
    • NullPointerException mit PreferenceMatchers withTitle tritt nicht mehr auf
    • Das Aufheben der Registrierung einer inaktiven Ressource führt nicht mehr dazu, dass Espresso glaubt, dass keine inaktiven Ressourcen mehr verfügbar sind
    • Aktualisierte Version für Supportanmerkungen, die von Espresso Contrib verwendet wird
  • Runner
    • AndroidJUnit4 überspringt jetzt Tests mit fehlgeschlagenen Annahmen
  • UIAutomator
    • Watchers ausführen, um StaleObjectException zu verhindern

Weitere wichtige Änderungen

  • Fügen Sie eine bessere Fehlermeldung hinzu, wenn der Text nicht mit einer nicht-lateinischen Zeichenfolge eingegeben werden kann.

UIAutomator 2.0 (12.03.2015)

UI Automator basiert jetzt auf der Android-Instrumentierung. Sie können Tests mit dem Befehl ./gradlew connectedCheck erstellen und ausführen.

Espresso Version 2.0, Test Runner 0.1 (veröffentlicht am 19.12.2014)

Wichtige Änderungen

  • Espresso wurde in einen neuen Namespace von android.support.test.espresso nach android.support.test.espresso verschoben
  • Espresso-Artefakte wurden umbenannt:
    • espresso-1.1.jar ist jetzt espresso-core-release-2.0.jar
    • Die Benutzeroberfläche von IdlingResource wurde in eine separate Bibliothek verschoben: espresso-idling-resource-release-2.0.jar
    • CountingIdlingResource befindet sich jetzt in espresso-contrib-release-2.0.jar (wie es immer sein sollte).
  • Optional (eine Guava-Abhängigkeit) wurde aus der öffentlichen API entfernt, um die Neubündelung der Guave-Abhängigkeit zu unterstützen und eine DEX-Kollision (eine Hauptursache von Entwicklungsproblemen) zu vermeiden. Betroffene Methoden sind:
    • ViewAssertion.check()
    • HumanReadables.getViewHierarchyErrorMessage()

Neue Funktionen

  • Aktionen
    • ViewActions
      • replaceText()
      • openLink()
      • Nach oben und unten wischen
    • Espresso-contrib
      • RecyclerViewActions: verarbeitet Interaktionen mit RecyclerViews
      • PickerActions: verarbeitet Interaktionen mit der Auswahl Date und Time
  • Matcher
    • RootMatchers
      • isPlatformPopup()
    • ViewMatchers
      • isJavascriptEnabled()
      • withSpinnerText()
      • withHint()
      • isSelected()
      • hasLinks()
    • LayoutMatchers: Matcher für i18n-bezogene Layouttests
    • CursorMatchers: eine Sammlung von Matchern für Cursor-Objekte
  • Assertions
    • PositionAssertions, einschließlich isLeftOf() und isAbove(): Sammlung von ViewAssertions zur Überprüfung der relativen Position von Elementen auf dem Bildschirm
    • LayoutAssertions: Assertions für i18n-bezogene Layouttests
  • Test-App: Viele neue Beispielaktivitäten/Tests
  • Sonstiges
    • Espresso.unregisterIdlingResources() und Espresso.getIdlingResources() bieten zusätzliche Flexibilität für die Arbeit mit IdlingResources
    • ViewInteraction.withFailureHandler(): Ermöglicht das Überschreiben des Fehler-Handlers aus onView()
    • onData()-Support für AdapterViews, unterstützt von CursorAdapters

Fehlerkorrekturen

  • ViewMatchers.isDisplayed() gleicht Aufrufe ab, die den gesamten Bildschirm einnehmen, aber nicht mehr als 90% angezeigt werden
  • Der Aufruf einer Wischaktion an DrawerActions.openDrawer() führt nicht mehr zu IdlingResourceTimeoutException

Weitere wichtige Änderungen

  • Von der Funktion „Build mit Maven“ zu Gradle gewechselt
  • Espresso-Abhängigkeiten (Guava, Dagger, Hamcrest) wurden aus dem Weg geräumt, um DEX-Kollisionen zu vermeiden.
  • Geändert, damit beim Registrieren und Aufheben der Registrierung inaktiver Ressourcen Erfolg oder Fehler zurückgegeben werden
  • Lollipop-Unterstützung: Platzieren Sie message.recycle() hinter einer Schnittstelle, um versionsbezogene Änderungen zu berücksichtigen.
  • Ziel-SDK-Level wurde auf 21 umgestellt – betrifft hauptsächlich die Test-App

Version 1.1 (veröffentlicht am: 08.01.2014)

Espresso

  • Neu swipeLeft und swipeRight ViewActions
  • Unterstützung des Mehrfenstermodus: Eine erweiterte Funktion, mit der das Zielfenster ausgewählt werden kann, auf dem Espresso den Vorgang ausführen soll
  • Verbesserungen an TypeTextAction: Ermöglicht die Texteingabe in einer vorfokussierten Ansicht und vereinfacht so das Anhängen von Text
  • Zahlreiche Fehlerkorrekturen

Espresso Contrib-Bibliothek

  • Diese neue Bibliothek enthält Funktionen, die Espresso ergänzen, aber nicht Teil der Kernbibliothek sind.
  • Neue DrawerActions für den Betrieb mit DrawerLayout: ist von der Android Support Library abhängig und befindet sich daher außerhalb der Espresso-Kernbibliothek

Beispieltests

  • Diese Tests wurden verlagert und befinden sich im selben Paket wie die Test-App
  • Durch Maven-POMs wurden doppelte Guava-Deps entfernt, sodass mvn install jetzt funktionieren sollte