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 von AndroidX Test 1.1.0.

  • Core
    • Unterstützung von Aktivitäten, die eine andere Aktivität starten, in ActivityScenario

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, JUnit 1.1.0-beta01 (06.12.2018)

  • Core
    • Neues core-ktx-Kotlin-Erweiterungsartefakt Enthält eine kotlin-freundliche ActivityScenario.launchActivity API
    • Neue ActivityScenario API zum Starten von Aktivitäten mit benutzerdefinierten Intents
    • Neue ActivityScenario API zum Empfangen eines Aktivitätsergebnisses
    • ActivityScenario schließbar machen
  • Espresso
    • Ändern Sie „withResourceNameMatcher“ und „HumanReadables“, damit sie mit API 28 kompatibel sind.
    • Beschreibung von „ReplaceTextAction“ aktualisieren, um „stringToBeSet“ einzuschließen
    • Unterstützung von Espresso im pausierten Looper-Modus von Robolectric.
  • JUnit
    • Neue ActivityScenarioRule API zum automatischen Starten und Schließen einer Aktivität beim Einrichten und Beenden von Tests
    • Neues junit-ktx-Kotlin-Erweiterungsartefakt Enthält eine Kotlin-freundliche ActivityScenarioRule API
  • Läufer
    • Verhalten von „-e package“ und „-e testFile“ beim Empfangen von Paketen konsistent machen
  • Richtig
    • BundleSubject-APIs für bool, parcelable und parcelableAsType 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
    • Setzen Sie „minSdkVersion“ auf 14 und „targetSdkVersion“ auf 28.
  • Espresso
    • Fehlerbehebung: „withContentDescription“ funktioniert jetzt auch mit anderen Typen als String
    • Unterstützung für die Verwendung von Espresso auf Robolectric hinzugefügt
    • Problem 72798625: Espresso ViewMatchers.withText funktioniert nicht, wenn „textAllCaps“ aktiviert ist
    • Unterstützung für das Einfügen einer Sequenz von Bewegungsereignissen hinzufügen
  • Intents
    • Beta-API zum Abrufen einer Liste von Intents hinzugefügt. Für die Verwendung mit neuen Wahrheitsbehauptungen vorgesehen
  • Läufer
    • Unterstützung für Instant-Apps hinzufügen
    • androidx.test.runner.AndroidJUnit4 wird eingestellt und durch androidx.test.ext.junit.runners.AndroidJUnit4 ersetzt
  • Überwachen
    • androidx.test.InstrumentationRegistry wird eingestellt und durch androidx.test.platform.app.InstrumentationRegistry und androidx.test.core.app.ApplicationProvider ersetzt.
  • AndroidTestOrchestrator
    • Die Verarbeitung der Orchestrator-Abdeckung wird nur aktiviert, wenn sowohl die Argumente „coverage“ als auch „coverageFilePath“ übergeben werden.
    • Warten Sie nur auf den Debugger, wenn „-debug“ festgelegt ist, aber nicht für die Auflistung von ATO-Testläufen. Es wurde ein neues orchestratorDebug-Flag zum Debuggen von Orchestrator selbst hinzugefügt.
  • Core
    • Neues Artefakt! Enthält neue APIs, die sowohl lokale als auch On-Device-Tests für Folgendes unterstützen:
      • Kontext abrufen: ApplicationProvider
      • Aktivitätslebenszyklen steuern: ActivityScenario(Beta)
      • Builders für MotionEvent, PackageInfo
      • Parceables-Dienstprogrammklasse
  • Richtig
    • Neues Artefakt! Enthält benutzerdefinierte Referenzdaten für Notification, Intent, Bundle, Parcelable und MotionEvent
  • JUnit
    • Neues Artefakt! Enthält 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
    • Breaking API Change:
      • Im Problem 64062890 wurde uns mitgeteilt, dass wir Guava Optional in unserer öffentlichen API verwenden. Das war ein schreckliches Versäumnis unsererseits . Aus diesem Grund gibt es in dieser Version eine schwerwiegende Änderung der öffentlichen API, um dieses Problem zu beheben. Wir haben einen unschönen Wrapper für die Guava Optional-Klasse eingeführt, der den Namen EspressoOptional trägt und sich im Namespace „android.support.test.espresso.util“ befindet. Entwickler, die die geleakte Guava Optional API verwendet haben, müssen ihre Importe und Verweise ändern, um EspressoOptional zu verwenden, wenn sie auf diese neue Version aktualisieren. Wir entschuldigen uns für eventuelle Unannehmlichkeiten.
    • Die APIs „onView()“ und „onData()“ sind jetzt mit „@CheckReturnValue“ gekennzeichnet, um Fehler zu vermeiden.
    • Die POM-Datei für espresso-core wurde korrigiert, sodass die Abhängigkeit „rules“ nicht abgerufen wird. Stattdessen wird sie von der POM-Datei für espresso-intents abgerufen. Für Entwickler sollte dies keine Änderung sein, da „espresso-intents“ nicht ohne „espresso-core“ verwendet werden kann.
    • Problem 65486414: In Espresso fehlt die Guava-Abhängigkeit
    • Problem 65576174: „Espresso IdlingResourceRegistry.sync“ führt dazu, dass der zweite Test fehlschlägt
    • Problem 65568629: „Espresso.onIdle“ verwendet „IdlingRegistry“ nicht
    • Problem 69333598: espresso 3.0.1 ist in Android-Bibliotheksmodul nicht mit play-services-auth:11.6.0 kompatibel.
    • Problem 64062890: Interner optionaler Typ, der von der AdapterViewProtocol-Schnittstelle bereitgestellt wird
    • Problem 64091847: Espresso 3.0.0 sollte NICHT vom Testrunner abhängig sein
    • Problem 73722050: espresso-contrib 3.0.2-alpha1-Pakete android.arch.{lifecycle/core}-Klassen
  • Espresso-remote
    • Das ist ein brandneues Artefakt. Wir haben alle Funktionen von Espresso für mehrere Prozesse außerhalb des espresso-core-Artefakts entkoppelt. Das ist übersichtlicher und sollte die Gesamtgröße und die Anzahl der Methoden von Espresso-Core erheblich reduzieren.
  • Läufer
    • Kürze den Stacktrace, wenn er für eine Binder-Transaktion zu groß ist. Da AJUR Fehler über einen Binder-IPC an AM zurückmelden muss, dürfen wir das Binder-Transaktionslimit nicht überschreiten, das 1 MB pro Prozess beträgt.
    • Problem 65828576: TestRequestBuilder stürzt ab, wenn ein Test in einer Klasse mit @Ignore ausgeführt wird
    • Problem 37057596: Fehler in @BeforeClass werden nicht behandelt
  • Regeln
    • Geben Sie nach Änderungen am Lebenszyklus eine Referenz für die zu testende Aktivität frei. Während des Tests kann die Aktivität jetzt direkt über die mit #getActivity() abgerufene Referenz manipuliert werden. Wenn die Aktivität beendet und neu gestartet wird, verweist die von #getActivity() zurückgegebene Referenz immer auf die aktuelle Instanz der Aktivität.
    • Problem 64389280: GrantPermissionRule bietet WRITE_EXTERNAL_STORAGE nicht
    • Problem 37065965: ActivityTestRule gibt Aktivität nach Änderung der Ausrichtung weiter
    • Problem 75254050: ActivityTestRule aktualisiert die Activity-Instanz bei Konfigurationsänderungen nicht
    • Problem 64464625: UI-Arbeiten können nicht in der Methode „finish()“ der Aktivität ausgeführt werden
  • AndroidTestOrchestrator
    • Übergeben Sie -e coverage true -e coverageFilePath /sdcard/foo/-Flags, um Abdeckungsdateien am angegebenen Speicherort zu generieren. Die App muss die Berechtigung haben, an den angegebenen Speicherort zu schreiben. 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 die generierten Abdeckungsdateien sich gegenseitig überschreiben.
    • Übergeben Sie das Flag -e clearPackageData, wenn der Orchestrator die Befehle pm clear context.getPackageName() und pm clear targetContext.getPackageName() zwischen den Testaufrufen ausführen soll. Der Kontext im Befehl „clear“ ist der Kontext der zu testenden App.
    • Behoben: Wenn ein leerer Test ausgeführt wird, d. h. kein @Test im Ziel vorhanden ist, unterscheidet sich das Testergebnis vom Legacy-Modus.
    • Problem 72758547: Test Orchestrator führt dazu, dass die Jacoco-Abdeckungsdaten unvollständig sind und nur Daten des letzten Testlaufs enthalten
    • Problem 67916042: Android Test Orchestrator : Ausführung aufgrund von Prozessabsturz wegen „OutOfMemory“ beendet
    • Problem 77752735: Orchestrator stürzt aufgrund von „TransactionTooLargeException“ ab
    • Problem 77549481: Test Orchestrator sollte nach jedem Test „pm clear“ ausführen

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

  • Espresso

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

    • Aufteilen des Maven-Artefakts für den Monitor com.android.support.test:monitor:<version> für Nutzer, die MonitoringInstrumentation ohne Testausführung und JUnit-Funktionen benötigen.

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

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

    • Problem 65828576: TestRequestBuilder stürzt ab, wenn Tests in einer mit @Ignore annotierten Klasse ausgeführt werden (eigenständig ohne Testausführung oder JUnit-Funktionen).

  • AndroidTestOrchestrator

    • Leere Tests werden jetzt genauso behandelt wie nicht orchestrierte AndroidJUnitRunner.
    • Orchestrator kann jetzt sehr große Standardausgaben von AndroidJUnitRunner verarbeiten.

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

  • Espresso

    • Die Option IdlingPolicy wurde hinzugefügt, um onTimeout() zu unterdrücken, wenn ein Step-Debugger an die VM angehängt ist.
    • Probleme 64024656, 64247586 und 64525881: Melden Sie keine Fehler für das fehlgeschlagene Laden von Klassen, es sei denn, ein Nutzer lädt bestimmte Klassen, indem er das Klassenrunner-Argument -e einfügt.
    • Problem 64877246: Fehlende Klassen zur JAR-Datei für Quellen hinzufügen.
  • Runner

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

    • Doppelte Berichtsfehler vermeiden Wenn ein Testprozess nach einem Fehler abstürzt, wird jetzt nur noch ein Fehler für den Test gemeldet.
    • Die Javadoc-Dokumentation für Orchestrator wurde korrigiert.
    • Tests werden jetzt als verpasst angezeigt, wenn der Remote-Prozess abstürzt.
    • Ignorierte Testläufe werden jetzt berücksichtigt.
    • Ignorierte Testläufe werden jetzt aus der Fußzeile ausgeschlossen, um den alten Ergebnissen zu entsprechen.
    • Probleme mit Laufzeitberechtigungen behoben. Testberichte werden jetzt auf Geräten mit Android 7.0 (API-Level 24) und höher 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)

Nicht abwärtskompatible Änderungen

  • Alle Artefakte
    • Unterstützung für API-Levels unter 15 wird eingestellt. Die SDK-Mindestversion verweist jedoch weiterhin 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 wurde jetzt in einen anderen „internen“ Namespace verschoben. Wenn Sie versehentlich die Guava-API über Espresso-Namespaces verwenden, kann es zu Problemen kommen.
      • Entfernen Sie alle Verweise auf die verschleierte Guava-Version (.core.deps.guava.).
      • Support Library 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.
    • Parametrisierte 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, wobei der Schwerpunkt auf Korrektheit und Isolation liegt. Orchestrator ist ein unabhängiger Instrumentierungsprozess, der für jeden Test einen Instrumentierungs-Runner-Prozess startet und die Ergebnisse erfasst.
      • Anwendungsabstürze beenden die Runner-Instrumentierung, aber nicht den Orchestrator, sodass Ihre Testsuite fortgesetzt werden kann.
      • Erfordert die Installation der Orchestrator-APK – 'com.android.support.test:orchestrator:1.0.0'
      • Version 1.0 hat nur eine Befehlszeilenschnittstelle. Die Integration in Android Studio und Firebase Test Lab ist geplant.

Fehlerkorrekturen

  • Espresso
    • Die Synchronisierung der Stammansicht wurde verbessert, um die Instabilität deutlich zu verringern.
    • Beschädigung von IdlingResourceRegistry beheben
    • Bessere Synchronisierung mit IdlingResource-Objekten
    • Problem 37132680: Espresso wartet nicht, bis die Dialogfelderstellung abgeschlossen ist, bevor die nächste Aktion ausgeführt wird
    • Problem 37103280: Espresso sollte ProGuard-Consumer-Regeln bereitstellen, damit Nutzer sie nicht hinzufügen müssen
    • Problem 37094726: Espresso-Intents enthalten unnötiges Anwendungslabels
    • Problem 37093953: Espresso: Keine verfügbare Prüfung für Null-/Leer-Fehlertext
    • Problem 37071776: espresso-core bettet die .pom-Dateien von Guava ein
    • Problem 37062612: NPE in release()
    • Problem 37063389: Kompilierung mit Guava und espresso-web als androidTest-Abhängigkeiten nicht möglich
    • Problem 37070533: Unterstützung für NavigationView in der Android Design Support Library hinzufügen
  • Läufer
    • Problem behoben: @UiThreadTest kann jetzt in Kombination mit @Test(timeout = 123) verwendet werden.
    • Der Runner-Parameter -e notClass wurde korrigiert.
    • -e log wurde korrigiert, um JUnit3- und JUnit4-Testsuiten sowie Parameterized- und Enclosed-Runner zu unterstützen.
    • Problem 37663530: Vor und nach jeder Testmethode auf den Abschluss aller Aktivitäten warten
    • Problem 37132680: Espresso wartet nicht, bis das Dialogfeld erstellt wurde, bevor die nächste Aktion ausgeführt wird
    • Problem 37123213: @RequiresDevice wird bei x86_64-ABI ignoriert
    • Problem 37101485: Einige im Manifest angegebene Argumente für AndroidJUnitRunner, z. B. Testgröße, Annotation und Debugging, werden ignoriert
    • Problem 37082857: Die semiparallele Espresso-Testausführung schlägt bei statischen Objekten fehl
    • Problem 37063396: Kontext nicht mit ProviderTestCase2 initialisiert (verursacht NullPointerException)

Weitere wichtige Änderungen

  • Binärdateien werden jetzt über Google Maven veröffentlicht
  • Reduzierte Größe der JAR-Dateien espresso-core und espresso-web – eingebettete Abhängigkeiten werden jetzt mit ProGuard reduziert
  • Alle .aar-Dateien enthalten jetzt ProGuard-Regeln
  • proguard_library.cfg-Dateien zu veröffentlichten Artefakten hinzufügen
  • Die Tapper-Schnittstelle hat eine neue Version von sendTap(), die implementiert werden muss.

Externe Beiträge

Espresso 2.2.2, Runner/Rules 0.5 (22.02.2016, stille Veröffentlichung)

Neue Funktionen

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

Fehlerkorrekturen

  • espresso
    • Problem 195331: In espresso-core sind die POM-Dateien von Guava eingebettet
    • Zählen von inaktiven Ressourcen aus espresso-contrib entfernt
  • 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 ATSL verschoben.
    • Stacktrace-Dump zu fehlender JSBridge entfernt
    • Behoben AndroidAnnotatedBuilder

Weitere wichtige Änderungen

  • ActivityTestRule, UiThreadTestRule, IntentsTestRule und ServiceTestRule sind nicht mehr in der Betaphase.
  • Datei mit Codeformatierungseinstellungen für einheitliche Codeformatierung hinzufügen

Espresso 2.2.1, Runner/Rules 0.4 (15.09.2015)

Neue Funktionen

  • Regeln
    • Neuer IntentsTestRule-Konstruktor hinzugefügt, um vollständige Kompatibilität mit ActivityTestRule zu gewährleisten
  • Runner
    • Sonderfall für die Multidex-Installation für API-Level 15 und niedriger hinzugefügt
    • Ausschlussfilter für 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 Tests außer einem einzelnen 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: View-Matcher für den Eingabetyp in einem EditText-Objekt hinzufügen
    • 157912: View-Matcher zum Abgleichen von Fehlertext für ein EditText-Objekt hinzufügen
    • 150674: Unterstützung für Schubladen mit beliebiger Ausrichtung hinzufügenDrawerActions
    • 150744: DrawerActions leckt nicht mehr parentListener
    • 153303: Schwerkraft bei den Prüfungen „Ist die Schublade geöffnet oder geschlossen?“ angegeben
    • 157910: DrawerLayout-Factories für Open- und Close-Aktionen hinzufügen

Fehlerkorrekturen

  • espresso
    • ViewActions.closeSoftKeyboard() sorgt jetzt dafür, dass die Bildschirmtastatur vollständig ausgeblendet wird.
    • Synchronisierungsproblem mit der Espresso.pressBack()-Methode von Espresso auf API-Level 21 und höher behoben
    • Die Synchronisierung für Tastaturschließanimationen auf API-Level 23 wurde korrigiert.
  • Regeln
    • Der Fehler ServiceTestRule auf API-Level 23 wurde behoben. startService() muss immer mit einem expliziten Intent aufgerufen werden.
  • Läufer
    • Fehlerhafte Unterstützung für Gradle JaCoCo behoben
    • Unterstützung für Test-Sharding korrigiert
    • Es wurde ein inkonsistenter Status im Test-Runner nach Zeitüberschreitungen bei JUnit3-Stiltests behoben.

Weitere wichtige Änderungen

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

Espresso 2.2 / ATSL 0.3 (2015-06-09)

Neue Funktionen

  • espresso-web 2.2
    • Neuer WebView-Support
  • espresso-core 2.2
    • Migration auf Dagger v2
    • Migration zur Verwendung von hamcrest v1.3
  • espresso-contrib 2.2
    • Prüfungen der Barrierefreiheit
    • DrawerActions-Schwerkraftunterstützung
  • Regeln 0.3
    • DisableOnAndroidDebug Regel
  • runner 0.3
    • Upgrade von JUnit v4.10 auf JUnit v4.12
    • Migration zur Verwendung von Hamcrest v1.3

Fehlerkorrekturen

  • DrawerActions-Leck behoben ParentListener
  • Ein Verstoß gegen eine Annahme wird jetzt als „Ignore“-Test und nicht mehr als fehlgeschlagener Test behandelt.
  • Es wurde ein Problem behoben, bei dem MonitoringInstrumentation Aktivitätsinstanzen über ExecutorService weitergegeben hat.
  • Problem behoben: Aktivitäten ohne zugehöriges Gerät blieben im Status „Beendet“ hängen.
  • Aktualisieren Sie Until.scrollFinished(), damit „true“ zurückgegeben wird, wenn keine Scroll-Ereignisse generiert wurden. Schutz vor potenziellen NPEs in UiObject2#setText()

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

Nicht abwärtskompatible Änderungen

  • Das Testrunner-Artefakt wurde in zwei Artefakte 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: Eine Mockito-ähnliche API, die hermetische Interaktivitätstests ermöglicht, indem Testautoren ausgehende Intents prüfen und stummeln können.
    • IntentsTestRule: Erweitert ActivityTestRule, initialisiert und gibt Espresso-Intents in funktionalen UI-Tests frei.
  • espresso-core
    • ViewActions: Es ist jetzt möglich, globale Zusicherungen vor dem Ausführen von Aktionen auszuführen. Das ist nützlich für andere Frameworks, die auf Espresso aufbauen, um den Status der Ansichtshierarchie zu validieren, während die vorhandene Espresso-Testsuite ausgeführt wird.
    • ViewMatchers.withContentDescription() resId-Überlastung
  • Regeln
    • ActivityTestRule: Diese Regel ermöglicht Funktionstests für eine einzelne Aktivität.
    • UiThreadRule- und UiThreadTest-Annotationen: 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 für die Überwachung von Anwendungslebenszyklusereignissen
    • 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 eine OutputStream akzeptieren.

Fehlerkorrekturen

  • espresso
    • Der Cursor-Matcher gibt jetzt false zurück, wenn die Spalte nicht gefunden wurde, damit Hamcrest mit dem nächsten Cursor fortfahren kann.
    • NullPointerException mit PreferenceMatchers withTitle tritt nicht mehr auf
    • Wenn eine inaktive Ressource abgemeldet wird, geht Espresso nicht mehr davon aus, dass wir inaktive Ressourcen haben, die beschäftigt sind.
    • Aktualisierte Version der Support Annotations, die von Espresso Contrib verwendet wird
  • runner
    • Bei AndroidJUnit4 werden Tests mit fehlerhaften Annahmen jetzt übersprungen.
  • UIAutomator
    • Watchers ausführen, um StaleObjectException zu verhindern

Weitere wichtige Änderungen

  • Bessere Fehlermeldung, wenn „typeText“ mit einem nicht lateinischen String nicht möglich ist

UIAutomator 2.0 (12.03.2015)

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

Espresso Version 2.0, Test Runner 0.1 (veröffentlicht am: 2014-12-19)

Nicht abwärtskompatible Änderungen

  • Espresso wurde in einen neuen Namespace verschoben, von android.support.test.espresso zu android.support.test.espresso
  • Espresso-Artefakte wurden umbenannt
    • espresso-1.1.jar heißt jetzt espresso-core-release-2.0.jar
    • Die IdlingResource-Schnittstelle 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 hätte sein sollen).
  • Die optionale Guava-Abhängigkeit wurde aus der öffentlichen API entfernt, um das Umpacken der Guava-Abhängigkeit zu unterstützen und DEX-Konflikte zu vermeiden, die eine große Quelle von Entwicklungsproblemen darstellen. Folgende Methoden sind betroffen:
    • 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 Date- und Time-Auswahlfeldern
  • 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
  • Behauptungen
    • PositionAssertions, einschließlich isLeftOf() und isAbove(): Sammlung von ViewAssertions zum Prüfen der relativen Position von Elementen auf dem Bildschirm
    • LayoutAssertions: Zusicherungen für i18n-bezogene Layouttests
  • Test-App: Viele neue Beispielaktivitäten/Tests
  • Sonstiges
    • Espresso.unregisterIdlingResources() und Espresso.getIdlingResources(): Bietet zusätzliche Flexibilität für die Arbeit mit IdlingResources
    • ViewInteraction.withFailureHandler(): Ermöglicht das Überschreiben des Fehler-Handlers von onView()
    • onData()-Support für AdapterViews mit CursorAdapters

Fehlerkorrekturen

  • ViewMatchers.isDisplayed() entspricht Ansichten, die den gesamten Bildschirm einnehmen, aber nicht mehr zu weniger als 90% angezeigt werden.
  • Wenn Sie den Call-to-Action für die Wischaktion aufrufen, wird nicht mehr IdlingResourceTimeoutException angezeigt.DrawerActions.openDrawer()

Weitere wichtige Änderungen

  • Umstellung von Maven auf Gradle
  • Espresso-Abhängigkeiten (Guava, Dagger, Hamcrest) wurden verschoben, um DEX-Konflikte zu vermeiden.
  • Die Registrierung und Deregistrierung von Leerlaufressourcen gibt jetzt Erfolg oder Misserfolg zurück.
  • Lollipop-Unterstützung: Platzieren Sie message.recycle() hinter einer Schnittstelle, um versionsbezogene Änderungen zu berücksichtigen.
  • SDK-Zielversion auf 21 umgestellt – betrifft hauptsächlich die Test-App

Version 1.1 (veröffentlicht am: 2014-01-08)

Espresso

  • Neue swipeLeft und swipeRight ViewActions
  • Unterstützung für Mehrfenstermodus: Eine erweiterte Funktion, mit der das Zielfenster ausgewählt werden kann, in dem Espresso den Vorgang ausführen soll.
  • Verbesserungen bei TypeTextAction: Text kann in eine bereits fokussierte Ansicht eingegeben werden, was das Anhängen von Text erleichtert.
  • 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 auf DrawerLayout: Hat eine Abhängigkeit von der Android Support Library, daher wird sie außerhalb der Espresso-Kernbibliothek beibehalten.

Beispieltests

  • Diese Tests wurden in dasselbe Paket wie die Test-App verschoben.
  • Die Maven-POMs wurden korrigiert, um doppelte Guava-Abhängigkeiten zu entfernen. mvn install sollte jetzt funktionieren.