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)
Version stable d'AndroidX Test 1.1.0.
- Core
- Mise à jour de ActivityScenario, qui prend désormais en charge les activités démarrant une autre activité.
 
 
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
- Ajout d'un nouvel artefact d'extension Kotlin core-ktx incluant une API ActivityScenario.launchActivity compatible avec Kotlin.
 - Ajout d'une nouvelle API ActivityScenario permettant de lancer des activités avec des intents personnalisés.
 - Ajout d'une nouvelle API ActivityScenario permettant de recevoir un résultat d'activité.
 - Mise à jour de ActivityScenario, qui peut désormais être fermé.
 
 - Espresso
- Mise à jour de withResourceNameMatcher et HumanReadables, désormais compatibles avec l'API 28.
 - Mise à jour de la description de ReplaceTextAction afin d'inclure stringToBeSet.
 - Compatibilité d'Espresso avec le mode looper suspendu de Robolectric.
 
 - JUnit
- Ajout d'une nouvelle API ActivityScenarioRule permettant de lancer et fermer automatiquement une activité lors de la configuration et de la suppression du test.
 - Ajout d'un nouvel artefact d'extension Kotlin junit-ktx incluant une API ActivityScenarioRule compatible avec Kotlin.
 
 - Runner
- Harmonisation du comportement de -e package et -e testFile lors de la réception de packages.
 
 - Vérité
- Ajout des API BundleSubject bool, parcelable et parcelableAsType.
 
 
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)
- Tous
- Mise à jour de minSdkVersion, désormais défini sur la version 14, et de targetSdkVersion, désormais défini sur la version 28.
 
 - Espresso
- Correction de withContentDescription afin de prendre en charge d'autres types que les chaînes.
 - Prise en charge d'Espresso sur Robolectric.
 - Problème 72798625 : Espresso ViewMatchers.withText ne fonctionne pas lorsque textAllCaps est activé.
 - Prise en charge de l'injection d'une séquence d'événements de mouvement.
 
 - Intents
- Ajout d'une API en version bêta permettant de récupérer la liste des intents, pour les nouvelles assertions de vérité.
 
 - Runner
- Prise en charge des applications instantanées.
 - Abandon de androidx.test.runner.AndroidJUnit4, à remplacer par androidx.test.ext.junit.runners.AndroidJUnit4.
 
 - Surveillance
- Abandon de androidx.test.InstrumentationRegistry, à remplacer par androidx.test.platform.app.InstrumentationRegistry et androidx.test.core.app.ApplicationProvider.
 
 - AndroidTestOrchestrator
- Mise à jour permettant de gérer la couverture de l'orchestrateur uniquement si les arguments "coverage" et "coverageFilePath" sont transmis.
 - Mise à jour permettant d'attendre le débogueur seulement lorsque -debug est défini, et non pour lister les scénarios de test ATO. Un indicateur orchestratorDebug a été ajouté pour déboguer l'orchestrateur.
 
 - Core
- Ajout d'un nouvel artefact incluant de nouvelles API compatibles à la fois avec les tests en local et sur l'appareil :
- Récupération du contexte : ApplicationProvider.
 - Contrôle du cycle de vie des activités : ActivityScenario (version bêta).
 - Compilateurs pour MotionEvent et PackageInfo.
 - Classe d'utilitaire Parcelable
 
 
 - Ajout d'un nouvel artefact incluant de nouvelles API compatibles à la fois avec les tests en local et sur l'appareil :
 - Vérité
- Ajout d'un nouvel artefact incluant des sujets de vérité personnalisés pour Notification, Intent, Bundle, Parcelable et MotionEvent.
 
 - JUnit
- Ajout d'un nouvel artefact incluant la classe d'exécuteur JUnit androidx.test.ext.junit.runners.AndroidJUnit4 compatible avec les tests en local et sur l'appareil.
 
 
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
- Modification destructive de l'API :
- Problème 64062890 : il nous a été signalé que nous utilisions Guava Optional dans notre API publique. C'est une terrible erreur de notre part. Par conséquent, nous avons introduit une modification destructive de l'API publique dans cette version. Nous avons ajouté un wrapper peu élégant (EspressoOptional) autour de la classe Guava Optional, sous l'espace de noms "android.support.test.espresso.util". Lors de mise à jour vers la nouvelle version, les développeurs qui utilisaient l'API Guava Optional divulguée doivent modifier leurs importations et leurs références afin d'utiliser EspressoOptional. Veuillez nous excuser pour tout désagrément occasionné.
 
 - Les API onView() et onData() sont désormais marquées avec @CheckReturnValue pour éviter toute erreur.
 - Le fichier POM espresso-core a été corrigé pour ne plus importer la dépendance "rules", de sorte qu'elle soit récupérée par le fichier POM espresso-intents. Il s'agit d'une modification no-op pour les développeurs, car espresso-intents ne peut pas être utilisé sans espresso-core.
 - Problème 65486414 : dépendance Guava manquante dans Espresso.
 - Problème 65576174 : échec du second test provoqué par IdlingResourceRegistry.sync dans Espresso.
 - Problème 65568629 : IdlingRegistry inutilisé par Espresso.onIdle.
 - Problème 69333598 : incompatibilité entre Espresso 3.0.1 et play-services-auth:11.6.0 dans le module de bibliothèque Android.
 - Problème 64062890 : exposition du type Optional interne par l'interface AdapterViewProtocol.
 - Problème 64091847 : Espresso 3.0.0 ne doit PAS dépendre du lanceur de test.
 - Problème 73722050 : packaging de classes android.arch.{lifecycle/core} par espresso-contrib 3.0.2-alpha1.
 
 - Modification destructive de l'API :
 - Espresso-remote
- Il s'agit d'un tout nouvel artefact. Nous avons dissocié toutes les fonctionnalités multiprocessus d'Espresso de l'artefact espresso-core. Plus claire, cette approche devrait réduire considérablement la taille globale d'espresso-core et le nombre de méthodes.
 
 - Runner
- Troncature de la trace de la pile lorsqu'elle devient trop grande pour une transaction de liaison. Étant donné qu'AJUR doit signaler les échecs à AM via un IPC de liaison, nous devons veiller à ne pas dépasser la limite pour une transaction de liaison, soit 1 Mo par processus.
 - Problème 65828576 : plantage de TestRequestBuilder lors de l'exécution du test d'une classe avec @Ignore.
 - Problème 37057596 : échecs non gérés dans @BeforeClass.
 
 - Règles
- Pensez à annuler les références à l'activité testée après une modification du cycle de vie. Pendant la durée du test, l'utilisateur peut désormais manipuler l'activité directement à l'aide de la référence #getActivity(). Si l'activité est terminée et relancée, la référence renvoyée par #getActivity() renverra toujours à l'instance actuelle de l'activité.
 - Problème 64389280 : GrantPermissionRule ne fournit pas WRITE_EXTERNAL_STORAGE.
 - Problème 37065965 : ActivityTestRule provoque la fuite de l'activité après un changement d'orientation.
 - Problème 75254050 : ActivityTestRule ne met pas à jour l'instance Activity après une modification de la configuration.
 - Problème 64464625 : impossible d'effectuer les opérations d'interface utilisateur avec la méthode finish() de Activity.
 
 - AndroidTestOrchestrator
- Transmettez les indicateurs 
-e coverage true -e coverageFilePath /sdcard/foo/pour générer des fichiers de couverture à l'emplacement indiqué (l'application doit être autorisée à écrire dans cet emplacement). Désormais, les fichiers de couverture se nomment comme suit :com.foo.Class#method1.ec. Notez que cette option n'est disponible que pour une exécution en mode isolé. En outre, elle ne peut pas être combinée avec l'indicateurcoverageFiled'AndroidJUnitRunner étant donné que les fichiers de couverture générés s'écrasent les uns les autres. - Transmettez l'indicateur 
-e clearPackageDatasi vous souhaitez que l'orchestrateur exécute les commandespm clear context.getPackageName()etpm clear targetContext.getPackageName()entre les appels de test. Le contexte de la commande clear correspond à l'application dans le contexte du test. - Correction d'un problème : lors d'un test vide (aucun @Test dans la cible), le résultat du test est différent par rapport à l'ancien mode.
 - Problème 72758547 : les données de couverture JaCoCo sont incomplètes avec Test Orchestrator, car elles ne contiennent que les données du dernier test.
 - Problème 67916042 : Android Test Orchestrator : l'exécution s'est arrêtée sur le plantage du processus à cause d'une mémoire insuffisante.
 - Problème 77752735 : Orchestrator plante pour TransactionTooLargeException.
 - Problème 77549481 : Test Orchestrator doit exécuter "pm clear" après chaque test.
 
 - Transmettez les indicateurs 
 
Espresso 3.0.2-alpha1, Runner 1.0.2-alpha1, Rules 1.0.2-alpha1, AndroidTestOrchestrator 1.0.2-alpha1 (05/12/2017)
Espresso
- Mise à jour de 
Intents, qui dispose désormais d'une réponse pouvant être appelée, ce qui permet aux tests de s'exécuter après avoir capturé un intent déclenché, mais avant de renvoyer un objetInstrumentation.ActivityResult. 
- Mise à jour de 
 Runner
Séparation de l'artefact Maven de surveillance
com.android.support.test:monitor:<version>, pour les utilisateurs ayant besoin deMonitoringInstrumentationsans fonctionnalités JUnit et d'exécution de test.Si vous utilisez
com.android.support.test:runner:<version>, tout fonctionne comme prévu, car Gradle extrait automatiquement le modulemonitoren tant que dépendance du modulerunner.Ajout de l'indicateur
newRunListenerOrderMode. Lorsque la valeur esttrue, les écouteurs définis par l'utilisateur s'exécutent avant les écouteurs par défaut. (Ce comportement devrait devenir le comportement par défaut.)Problème 65828576 :
TestRequestBuilderplante lors de l'exécution de tests dans une classe annotée avec@Ignore(de manière autonome sans fonctionnalités JUnit ou d'exécution de test).
AndroidTestOrchestrator
- Mise à jour permettant de gérer les tests vides comme un 
AndroidJUnitRunnernon orchestré. - Orchestrator peut désormais gérer un résultat standard très volumineux provenant de 
AndroidJUnitRunner. 
- Mise à jour permettant de gérer les tests vides comme un 
 
Espresso 3.0.1, Runner 1.0.1, Rules 1.0.1, AndroidTestOrchestrator 1.0.1 (28/08/2017)
Espresso
- Ajout d'une option 
IdlingPolicypermettant de supprimeronTimeout()lorsqu'un débogueur d'étapes est associé à la VM. - Problèmes 64024656, 64247586 et 64525881 : absence de signalement des échecs de chargement de classe, sauf si un utilisateur charge des classes spécifiques en incluant l'argument d'exécuteur de classe 
-e. - Problème 64877246 : ajout de classes manquantes au fichier JAR des sources.
 
- Ajout d'une option 
 Runner
- Simplification de la logique 
ShardingFilter. - Problème 65025743 : prise en charge des émulateurs FTL par le filtre 
@RequiresDevice. 
- Simplification de la logique 
 AndroidTestOrchestrator
- Correction du problème où un échec était signalé deux fois. Désormais, lorsqu'un processus de test plante, un seul échec est signalé.
 - Correction de Javadoc pour Orchestrator.
 - Mise à jour des tests, désormais signalés comme manqués suite au plantage du processus à distance.
 - Prise en charge des scénarios de test ignorés.
 - Exclusion des scénarios de test ignorés du pied de page pour mettre en correspondance les anciens résultats.
 - Correction des problèmes d'autorisation d'exécution. Les rapports de test sont désormais écrits sur la carte SD sous Android 7.0 (niveau d'API 24) ou version ultérieure.
 
Espresso 3.0.0, Runner 1.0.0, Rules 1.0.0, AndroidTestOrchestrator 1.0.0 (25/07/2017, annonce)
Modifications destructives
- Tous les artefacts
- Fin de la prise en charge des niveaux d'API inférieurs à 15. Toutefois, le SDK minimal pointe toujours vers le niveau d'API 9 pour laisser le temps aux utilisateurs d'effectuer la mise à niveau.
 
 - Espresso
- Suppression et déplacement de la classe 
android.support.test.espresso.contrib.CountingIdlingResource, devenue obsolète, versandroid.support.test.espresso.idling.CountingIdlingResource- .
 - Utilisez 
getInstance().register()à la place deregisterIdlingResources(). 
 - Utilisez 
 - Guava est désormais stocké au format JAR dans un autre espace de noms "interne". Si vous utilisez accidentellement l'API Guava via des espaces de noms Espresso, vous constaterez peut-être des dysfonctionnements.
- Supprimez toutes les références à Shaded Guava (
.core.deps.guava.). - Mettez à niveau la bibliothèque Support vers la version 25.4.0 ou une version ultérieure.
 
 - Supprimez toutes les références à Shaded Guava (
 
 - Suppression et déplacement de la classe 
 
Problèmes connus
- AndroidTestOrchestrator
- Incompatibilité avec les arguments d'exécuteur 
-e numShardset-e shardIndex. - Incompatibilité avec les tests paramétrés.
 
 - Incompatibilité avec les arguments d'exécuteur 
 
Nouvelles fonctionnalités
- Espresso
- Prise en charge de Multiprocess Espresso sur l'API 26 pour 
espresso-coreetespresso-web, mais pasespresso-contrib. - Ajout d'une nouvelle API 
IdlingRegistrylégère- .
 - Publiée dans 
com.android.support.test.espresso:espresso-idling-resource:3.0.0. - Méthodes obsolètes :
 
 - Publiée dans 
 - Ajout d'une nouvelle API permettant la synchronisation avec 
Executors- .
 - Ajout d'un nouvel artefact Maven : 
com.android.support.test.espresso.idling:idling-concurrent:3.0.0. - Contient les classes 
IdlingScheduledThreadPoolExecutoretIdlingThreadPoolExecutor. 
 - Ajout d'un nouvel artefact Maven : 
 - Ajout d'une nouvelle API permettant la synchronisation avec les requêtes et les réponses réseau.
- Ajout d'un nouvel artefact Maven : 
com.android.support.test.espresso.idling:idling-net:3.0.0. - Contient la classe 
UriIdlingResource. 
 - Ajout d'un nouvel artefact Maven : 
 - Ajout de nouveaux outils de mise en correspondance pour les vues 
espresso-core:hasBackground()met en correspondance la ressource drawable d'arrière-plan d'un objetView.hasTextColor()met en correspondance la couleur d'un objetTextView.
 - Ajout de nouvelles méthodes d'action pour les vues :
- Amélioration de l'action de vue 
scrollTo()afin de prendre en charge les descendants deListView. repeatedlyUntil(): exécute laViewActionspécifiée sur une vue jusqu'à ce que celle-ci corresponde auxViewMatcherssouhaités.
 - Amélioration de l'action de vue 
 - Ajout de nouvelles méthodes Espresso :
pressBackUnconditionally(): semblable àpressBack(), mais ne génère pas d'exception lorsque Espresso gère la navigation.noActivity(): plus besoin d'attendre une activité avant d'effectuer uneViewActionouViewAssertion.onIdle(): crée une boucle dans le thread principal jusqu'à ce que l'application devienne inactive.onIdle(Callable<T>): semblable àonIdle(), mais accepte unCallablesupplémentaire en tant que paramètre qui s'exécute lorsque l'application devient inactive.
 webScrollIntoView(): nouvel Atomespresso-webqui vous permet de faire défiler unWebView.
 - Prise en charge de Multiprocess Espresso sur l'API 26 pour 
 
- Exécuteur
  
- 
      
InterceptingActivityFactoryetSingleActivityFactory: permettent de tester une activité de manière indépendante en remplaçant des méthodes telles questartService()etsendBroadcast(). - 
      Prise en charge de JUnitParams avec 
AndroidJUnitRunner. - 
      Début de la gestion de 
      
@UiThreadTestau niveau du lanceur de test principal et abandon de@UiThreadTestRule. Cela permet d'utiliser l'annotation@UiThreadTestdirectement sur les méthodes annotées avec@Beforeet@After. - 
      Prise en charge de la valeur 
maxSdkVersionpar l'annotation@SdkSupress. (problème 37067792) - 
      
-e classLoader: permet de transmettre des chargeurs de classe à l'aide d'arguments d'exécuteur. - 
      
-e filter: permet de prendre en charge des filtres JUnit personnalisés à spécifier à l'aide d'arguments d'exécuteur. - 
      
-e runnerBuilder: permet aux développeurs de fournir leurs propres implémentations deRunnerBuilderafin de déterminer si elles peuvent être exécutées sur une classe spécifique et comment. 
 - 
      
 
- Règles
ProviderTestRule: nouvelle API pour tester les objetsContentProvider.getActivityResult()etActivityResultMatchers: nouvelle API permettant de récupérer le résultat d'une activité qui a appelésetResult().
 - AndroidTestOrchestrator
- Android Test Orchestrator propose une nouvelle façon de collecter et d'exécuter des tests, en mettant l'accent sur l'exactitude et l'isolation. Il s'agit d'un processus d'instrumentation indépendant qui génère un processus d'exécution d'instrumentation pour chaque test et collecte les résultats.
- Si l'application plante, l'instrumentation de l'exécuteur est supprimée, mais pas l'orchestrateur, ce qui permet de poursuivre la suite de tests.
 - Nécessite l'installation de l'APK d'orchestrateur 
'com.android.support.test:orchestrator:1.0.0'. - La version 1.0 dispose uniquement d'une interface de ligne de commande. Android Studio et Firebase Test Lab seront intégrés ultérieurement.
 
 
 - Android Test Orchestrator propose une nouvelle façon de collecter et d'exécuter des tests, en mettant l'accent sur l'exactitude et l'isolation. Il s'agit d'un processus d'instrumentation indépendant qui génère un processus d'exécution d'instrumentation pour chaque test et collecte les résultats.
 
Correction de bugs
- Espresso
- Amélioration de la synchronisation de la vue racine permettant de réduire considérablement la fragilité.
 - Correction du problème de corruption affectant 
IdlingResourceRegistry. - Amélioration de la synchronisation avec les objets 
IdlingResource. - Problème 37132680 : Espresso n'attend pas la fin de la création de la boîte de dialogue pour effectuer l'action suivante.
 - Problème 37103280 : Espresso devrait fournir les règles ProGuard aux consommateurs pour leur éviter de les ajouter.
 - Problème 37094726 : les intents Espresso contiennent un libellé d'application inutile.
 - Problème 37093953 : Espresso ne propose aucune vérification pour les textes d'erreur nuls/vides.
 - Problème 37071776 : 
espresso-coreintègre les fichiers.pomde Guava. - Problème 37062612 : exception NPE dans 
release(). - Problème 37063389 : échec de compilation avec Guava et 
espresso-webcomme dépendancesandroidTest. - Problème 37070533 : prise en charge de 
NavigationViewdans la bibliothèque Support Design Android. 
 
- Exécuteur
  
- 
      Correction permettant d'utiliser 
@UiThreadTestavec@Test(timeout = 123). - Correction de l'argument d'exécuteur 
-e notClass. - Correction de 
-e logafin de prendre en charge les suites de test JUnit3 et JUnit4, ainsi que les exécuteursParameterizedetEnclosed. - Problème 37663530 : attendez que toutes les activités se terminent avant et après chaque méthode de test.
 - Problème 37132680 : Espresso n'attend pas la fin de la création de la boîte de dialogue pour effectuer l'action suivante.
 - 
      Problème 37123213 : 
@RequiresDeviceest ignoré sur l'ABI x86_64. - 
      Problème 37101485 : certains arguments fournis par le fichier manifeste pour 
AndroidJUnitRunner, tels que la taille du test, l'annotation et le débogage, sont ignorés. - Problème 37082857 : échec de l'exécution des tests semi-parallèles Espresso sur les objets statiques.
 - 
      Problème 37063396 : le contexte n'est pas initialisé avec 
ProviderTestCase2(ce qui génèreNullPointerException). 
 - 
      Correction permettant d'utiliser 
 
- Règles
- Correction du cycle de vie de 
ActivityTestRuleafin d'unifier le comportement lors de l'initialisation standard et différée deActivityTestRule. - Problème 37079943 : correction de 
ServiceTestRulepermettant d'effectuer à nouveau la liaison. - Problème 37109342 : ajout de 
getActivityResult()etActivityResultMatchers. 
 - Correction du cycle de vie de 
 - UiAutomator
- Compatibilité entre 
setUiAutomationFlags()etUiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES, permettant d'utiliserUiAutomatoralors que d'autres services d'accessibilité sont en cours d'exécution. - Problème 37082813 : 
setText()sur des objetsEditTextvides renvoie une exceptionNullPointerExceptionsi le niveau d'API est inférieur ou égal à 19. 
 - Compatibilité entre 
 
Autres changements notables
- Mise à jour : les binaires sont désormais publiés via Google Maven.
 - Réduction de la taille des fichiers JAR 
espresso-coreetespresso-web: ProGuard est désormais appliqué aux dépendances intégrées. - Mise à jour : tous les fichiers 
.aarincluent désormais les règles ProGuard. - Ajout de fichiers 
proguard_library.cfgaux artefacts publiés. - Mise à jour de l'interface 
Tapper, qui permet désormais d'implémenter une nouvelle version desendTap(). 
Contributions externes
- Espresso
 - Runner
 - Règles
 
Espresso 2.2.2, Runner/Rules 0.5 (22/02/2016, version silencieuse)
Nouvelles fonctionnalités
- espresso
- Problème 194253 : prise en charge de NavigationView dans la bibliothèque Support Design Android.
 - Ajout de vérifications pour les animations et les transitions activées.
 - Ajout d'une nouvelle API 
ViewMatcher:withResourceName(). 
 
Correction de bugs
- espresso
- Problème 195331 : espresso-core intègre les fichiers POM de Guava.
 - Suppression de CountingIdlingResource dans espresso-contrib.
 
 - rules
- Problème 187249 : exception NPE dans 
Intents.release(). 
 - Problème 187249 : exception NPE dans 
 - runner
- Problème 196066 : l'argument 
-e log truedansAndroidJUnitRunnerne contourne pas le test réel. - Mise à jour qui impose d'attendre le débogueur dans la méthode 
onCreate()de l'exécuteur. - Déplacement de toutes les annotations de test compatibles de la plate-forme vers ATSL.
 - Suppression du fichier de vidage de la trace de la pile concernant l'absence de JSBridge.
 - Correction de 
AndroidAnnotatedBuilder. 
 - Problème 196066 : l'argument 
 
Autres changements notables
- Mise à jour de 
ActivityTestRule,UiThreadTestRule,IntentsTestRuleetServiceTestRule, qui ne sont plus en version bêta. - Ajout d'un fichier de paramètres de style afin d'unifier la mise en forme du code.
 
Espresso 2.2.1, Runner/Rules 0.4 (15/09/2015)
Nouvelles fonctionnalités
- rules
- Ajout d'un nouveau constructeur 
IntentsTestRulepour une compatibilité totale avecActivityTestRule. 
 - Ajout d'un nouveau constructeur 
 - runner
- Ajout d'une installation multidex spéciale pour l'API niveau 15 et inférieur.
 - Ajout de filtres d'exclusion à la classe et au package :
- Exécuter tous les tests, sauf ceux d'une classe particulière : 
adb shell am instrument -w -e notClass com.android.foo.FooTest - Exécuter tous les tests, sauf un test particulier :
adb shell am instrument -w -e notClass com.android.foo.FooTest#testFoo - Exécuter tous les tests, sauf ceux d'un package particulier : 
adb shell am instrument -w -e notPackage com.android.foo.bar 
 - Exécuter tous les tests, sauf ceux d'une classe particulière : 
 
 
Contributions externes
- espresso
- 157911 : ajout d'un outil de mise en correspondance des vues pour le type d'entrée sur un objet 
EditText. - 157912 : ajout d'un outil de mise en correspondance des vues pour faire correspondre le texte d'erreur sur un objet 
EditText. - 150674 : prise en charge de 
DrawerActionspour les panneaux à gravité arbitraire. - 150744 : 
DrawerActionsne provoque plus la fuite deparentListener. - 153303 : spécification de la gravité dans les vérifications permettant de contrôler si le panneau est ouvert ou fermé.
 - 157910 : ajout de fabriques d'action d'ouverture et de fermeture 
DrawerLayout. 
 - 157911 : ajout d'un outil de mise en correspondance des vues pour le type d'entrée sur un objet 
 
Correction de bugs
- espresso
- Mise à jour de 
ViewActions.closeSoftKeyboard(), qui garantit désormais que le clavier virtuel a complètement disparu. - Correction du problème de synchronisation avec la méthode 
Espresso.pressBack()d'Espresso au niveau d'API 21 ou ultérieur. - Correction du problème de synchronisation des animations de fermeture du clavier au niveau d'API 23.
 
 - Mise à jour de 
 - rules
- Correction de 
ServiceTestRuleau niveau d'API 23 :startService()doit toujours être appelé avec unIntentexplicite. 
 - Correction de 
 - runner
- Correction du problème de compatibilité avec le Gradle 
JaCoCo. - Correction du problème de compatibilité avec la segmentation des tests.
 - Correction de l'état incohérent dans le lanceur de test après expiration du test de style 
JUnit3. 
 - Correction du problème de compatibilité avec le Gradle 
 
Autres changements notables
- Correction de problèmes affectant Javadoc et amélioration des messages d'erreur.
 - Mise à jour permettant d'ignorer les méthodes 
suite()et de ne pas ignorer les erreurs d'initialisation avec les filtres de méthode. 
Espresso 2.2/ATSL 0.3 (09/06/2015)
Nouvelles fonctionnalités
- espresso-web 2.2
- Prise en charge de 
WebView. 
 - Prise en charge de 
 - espresso-core 2.2
- Migration afin d'utiliser Dagger 2.
 - Migration afin d'utiliser Hamcrest 1.3.
 
 - espresso-contrib 2.2
- Vérifications de l'accessibilité.
 - Prise en charge de la gravité dans les 
DrawerActions. 
 - rules 0.3
- Ajout de la règle 
DisableOnAndroidDebug. 
 - Ajout de la règle 
 - runner 0.3
- Mise à niveau de la version 4.10 de JUnit vers la version 4.12.
 - Migration afin d'utiliser Hamcrest 1.3.
 
 
Correction de bugs
- Correction de 
DrawerActionsqui provoque la fuite deParentListener. - Mise à jour : une hypothèse qui a échoué est désormais considérée comme un test à ignorer, et non plus comme un test en échec.
 - Correction de 
MonitoringInstrumentationqui provoque la fuite d'instances d'activité viaExecutorService. - Correction du problème concernant les activités orphelines bloquées à l'étape Stopped.
 - Mise à jour de 
Until.scrollFinished()afin de renvoyer la valeur "true" si aucun événement de défilement n'a été généré. Protection contre une exception NPE potentielle dansUiObject2#setText(). 
Espresso 2.1, Test Runner/Rules 0.2 et UIAutomator 2.1.0 (21/04/2015)
Modifications destructives
- Séparation de l'artefact du lanceur de test en deux : 
com.android.support.test:testing-support-lib:0.1devientcom.android.support.test:runner:0.2etcom.android.support.test:rules:0.2. 
Nouvelles fonctionnalités
- espresso-intents : ajout d'une API de type Mockito qui permet d'effectuer des tests hermétiques entre activités en offrant la possibilité à leurs auteurs de vérifier et boucher les intents sortants.
IntentsTestRule: extension deActivityTestRulequi initialise et libère Espresso-Intents dans les tests d'interface utilisateur fonctionnels.
 - espresso-core
ViewActions: ajout d'une fonctionnalité permettant d'exécuter des assertions globales avant des actions. C'est utile pour d'autres frameworks qui s'appuient sur Espresso pour valider l'état de la hiérarchie des vues pendant l'exécution de la suite de tests Espresso existante.- Surcharge de 
ViewMatchers.withContentDescription()resId. 
 - rules
ActivityTestRule: cette règle permet de tester le fonctionnement d'une seule activité.- Annotations 
UiThreadRuleetUiThreadTest: cette règle permet à la méthode de test annotée avecUiThreadTestde s'exécuter sur le thread principal (ou thread UI) de l'application. ServiceTestRule: cette règle permet de tester le fonctionnement d'un service.
 - runner
ApplicationLifecycleCallback: rappel permettant de surveiller les événements de cycle de vie de l'application.- Mise à jour des arguments d'exécuteur, qui peuvent tous être spécifiés désormais dans le fichier manifeste Android à l'aide d'une balise 
<meta-data>. 
 - UIAutomator
- Mise à jour de 
UiDevice.dumpWindowHierarchy(), qui accepte désormais unFileou unOutputStream. 
 - Mise à jour de 
 
Correction de bugs
- espresso
- Mise à jour de l'outil de mise en correspondance du curseur, qui renvoie désormais 
falsesi la colonne est introuvable, afin que Hamcrest puisse passer au curseur suivant. - Suppression de l'exception 
NullPointerExceptionavecPreferenceMatcherswithTitle. - Mise à jour d'Espresso, qui ne considère plus comme occupée une ressource d'inactivité dont l'enregistrement a été annulé.
 - Mise à jour de la version de la bibliothèque Support Annotations utilisée par Espresso Contrib.
 
 - Mise à jour de l'outil de mise en correspondance du curseur, qui renvoie désormais 
 - runner
- Mise à jour de 
AndroidJUnit4, qui ignore désormais les tests avec des hypothèses en échec. 
 - Mise à jour de 
 - UIAutomator
- Exécution d'observateurs pour empêcher 
StaleObjectException. 
 - Exécution d'observateurs pour empêcher 
 
Autres changements notables
- Amélioration du message d'erreur lorsque l'action typeText est impossible avec une chaîne de caractères non latins.
 
UIAutomator 2.0 (12/03/2015)
UI Automator est maintenant basé sur l'instrumentation Android. Vous pouvez créer et exécuter des tests à l'aide de la commande ./gradlew connectedCheck.
Espresso version 2.0, Test Runner 0.1 (date de publication : 19/12/2014)
Modifications destructives
- Déplacement d'Espresso de l'espace de noms 
android.support.test.espressoversandroid.support.test.espresso. - Changement de noms pour les artefacts Espresso :
espresso-1.1.jardevientespresso-core-release-2.0.jar.- L'interface 
IdlingResourcea été déplacée dans une bibliothèque distincte :espresso-idling-resource-release-2.0.jar. CountingIdlingResourcese trouve désormais dansespresso-contrib-release-2.0.jar(comme il aurait toujours dû).
 - Suppression de Optional (une dépendance Guava) de l'API publique pour permettre le repackaging de la dépendance Guava et éviter les conflits DEX (une difficulté majeure lors du développement). Les méthodes suivantes sont concernées :
ViewAssertion.check()HumanReadables.getViewHierarchyErrorMessage()
 
Nouvelles fonctionnalités
- Actions
ViewActionsreplaceText()openLink()- Balayage vers le haut et vers le bas
 
- espresso-contrib
RecyclerViewActions: gère les interactions avecRecyclerViews.PickerActions: gère les interactions avec les sélecteursDateetTime.
 
 - Outils de mise en correspondance
RootMatchersisPlatformPopup()
ViewMatchersisJavascriptEnabled()withSpinnerText()withHint()isSelected()hasLinks()
LayoutMatchers: outils de mise en correspondance pour les tests de mise en page liés à i18n.CursorMatchers: ensemble d'outils de mise en correspondance pour les objetsCursor.
 - Assertions
PositionAssertions, y comprisisLeftOf()etisAbove(): ensemble deViewAssertionspour vérifier la position relative des éléments à l'écran.LayoutAssertions: assertions pour les tests de mise en page liés à i18n.
 - Application de test : nombreux nouveaux exemples d'activités et de tests.
 - Autre
Espresso.unregisterIdlingResources()etEspresso.getIdlingResources(): apporte une flexibilité supplémentaire lors de l'utilisation desIdlingResources.ViewInteraction.withFailureHandler(): permet de remplacer le gestionnaire d'échecs depuisonView().- Prise en charge de 
onData()pourAdapterViewsavecCursorAdapters. 
 
Correction de bugs
- Correction de 
ViewMatchers.isDisplayed()pour faire correspondre les vues qui occupent tout l'écran, mais qui ne sont plus affichées à moins de 90 %. - Correction afin que l'appel d'une action de balayage pour 
DrawerActions.openDrawer()ne génère plus d'exceptionIdlingResourceTimeoutException. 
Autres changements notables
- Migration de Maven à Gradle pour la compilation.
 - Retrait des dépendances Espresso (Guava, Dagger, Hamcrest) afin d'éviter les conflits DEX.
 - Modification afin de renvoyer un échec ou une réussite lors de l'enregistrement et de l'annulation de l'enregistrement des ressources d'inactivité.
 - Compatibilité avec Lollipop : 
message.recycle()placé derrière une interface pour tenir compte des modifications liées à la version. - Migration vers le niveau de SDK cible 21, modification affectant principalement l'application de test.
 
Version 1.1 (date de publication : 08/01/2014)
Espresso
- Ajout des 
ViewActionsswipeLeftetswipeRight. - Prise en charge du mode multifenêtre, une fonctionnalité avancée qui permet de choisir la fenêtre cible sur laquelle Espresso doit exécuter l'opération.
 - Améliorations apportées à 
TypeTextAction: possibilité de saisir du texte dans une vue présélectionnée, ce qui facilite l'ajout de texte. - Nombreuses corrections de bugs
 
Bibliothèque Espresso Contrib
- Cette nouvelle bibliothèque contient des fonctionnalités qui complètent Espresso, mais qui ne font pas partie de la bibliothèque principale.
 - Ajout de 
DrawerActionspourDrawerLayout: dépend de la bibliothèque Android Support. Par conséquent, nous le conservons en dehors de la bibliothèque Espresso principale. 
Exemples de tests
- Ces tests ont été déplacés dans le même package que l'application de test.
 - Les fichiers POM Maven ont été corrigés afin de supprimer les dépendances Guava en double. 
mvn installdevrait donc fonctionner désormais.