registerIdlingResources veralteter Ersatz funktioniert nicht

Lesezeit: 2 Minuten

Benutzeravatar von Crisic
Kritisch

Ich versuche, meinen Espresso zu ersetzen registerIdlingResources und unregisterIdlingResources veraltete Methode durch Verwendung IdlingRegistry Methode gemäß Android-Dokumentation.

Einige meiner Tests funktionierten vor dem Update und funktionieren jetzt nicht mehr … Diese Tests funktionieren einheitlich, aber nicht zusammen.

Mir ist aufgefallen, dass es einen kleinen Unterschied zur alten Version (von Espresso Klasse), ist diese Zeile in nicht vorhanden IdlingRegistry Klasse :

baseRegistry.sync(IdlingRegistry.getInstance().getResources(), IdlingRegistry.getInstance().getLoopers());

ich denke das sync Methode ist sehr wichtig für meine benutzerdefinierte IdlingResource …

Wie kann ich meinen Looper ohne diese Leitung synchronisieren?

Danke für Deine Hilfe.

Bearbeiten: Ich verwende EspressoCore 3.0.1 mit Läufer/Regeln 1.0.1

Edit2: Link der Dokumentation, die als veraltet markiert wurde: Hier und Hier.

  • kann ich einen doc link bekommen…

    – Ajinkya

    23. Oktober 2017 um 5:40 Uhr

  • @Ajinkya: Ich habe meine erste Nachricht bearbeitet, um unten Links hinzuzufügen. 🙂

    – Kritisch

    23. Oktober 2017 um 14:03 Uhr

Achten Sie darauf, die auszuführen neueste Version von androidx.test

Wenn Ihre Tests einzeln ausgeführt werden, aber bei gemeinsamer Ausführung fehlschlagen, Android Test Orchestrator (“ATO”) kann dieses Problem lösen. ATO führt jede Testmethode in einem neuen Prozess aus, sodass alle im Speicher befindlichen Zustände gelöscht werden.

Aus den Dokumentendas grundlegende Gradle-Setup ist:

android {
  defaultConfig {
   ...
   testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

   // The following argument makes the Android Test Orchestrator run its
   // "pm clear" command after each test invocation. This command ensures
   // that the app's state is completely cleared between tests.
   testInstrumentationRunnerArguments clearPackageData: 'true'
 }

  testOptions {
    execution 'ANDROIDX_TEST_ORCHESTRATOR'
  }
}

dependencies {
  androidTestImplementation 'androidx.test:runner:1.3.0'
  androidTestUtil 'androidx.test:orchestrator:1.3.0'
}

Die Dokumentation enthält auch Setup für die Installation und Verwendung Android Test Orchestrator ohne Gradle.

Sie können ATO auch im Firebase Test Lab verwenden:

Wenn Sie immer noch Probleme mit Ihren IdlingResources haben, können Sie das versuchen Busybee-Bibliothek Dies vereinfacht die Verwendung von IdlingResources und erleichtert das Debuggen. (Haftungsausschluss, ich bin ein Betreuer dieser Bibliothek)

1438880cookie-checkregisterIdlingResources veralteter Ersatz funktioniert nicht

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy