أرشيف ملاحظات الإصدار التجريبي

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 (2018-12-13)

هذا هو الإصدار الثابت من AndroidX Test 1.1.0.

  • الأساسية
    • جعل سيناريو النشاط يدعم الأنشطة التي تبدأ نشاطًا آخر

AndroidX Test Espresso 3.1.1-beta01, Runner 1.1.1-beta01, Rules 1.1.1-beta01، شاشة 1.1.1-beta01 AndroidTestOrchestrator 1.1.1-beta01، Core 1.1.0-beta01 Truth 1.1.0-beta101. J220-beta.1.

  • الأساسية
    • إضافة عناصر جديدة لإضافة Core-ktx kotlin ويتضمن واجهة برمجة تطبيقات Activityسيناريو.launchActivity المتوافقة مع لغة kotlin
    • واجهة برمجة تطبيقات سيناريو النشاط الجديد لإطلاق الأنشطة ذات الأهداف المخصّصة
    • واجهة برمجة تطبيقات سيناريو النشاط الجديدة لتلقي نتيجة نشاط
    • جعل سيناريو النشاط قابلاً للإغلاق
  • الإسبريسو
    • التعديل باستخدامResourceNameMatcher وHmanReadables ليكونا متوافقين مع الإصدار 28 من واجهة برمجة التطبيقات
    • عدِّل وصف replaceTextAction لتضمين السلسلةToBeSet
    • يمكنك إتاحة Espresso في وضع Robolectric المتوقف مؤقتًا بتكرار.
  • JUnit
    • واجهة برمجة تطبيقات Activityالحالة الجديدة للإطلاق التلقائي وإغلاق صفحة النشاط عند إعداد الاختبار وإنهاء الإجراءات
    • عنصر جديد لإضافة junit-ktx kotlin. يشتمل على واجهة برمجة تطبيقات Activityسيناريو تستند إلى لغة البرمجة kotlin
  • عدّاء
    • جعل الحزمة -e و-e testFile متطابقين في السلوك عند استلام الحزم
  • الحقيقة
    • إضافة واجهات برمجة تطبيقات bool و parcelableAsType BundleSubject

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 (2018-10-24)

  • الكل
    • ضبط minSdkVersion على 14 وtargetSdkVersion على 28.
  • الإسبريسو
    • إصلاح withContentDescription للعمل مع الأنواع التي لا تمثّل سلاسل
    • إضافة دعم لاستخدام Espresso على Robolectric
    • المشكلة 72798625: لا يعمل Espresso ViewMatchers.withText عند تفعيل textAllCaps
    • إضافة دعم لإدخال سلسلة من أحداث الحركة
  • الأهداف
    • يمكنك إضافة واجهة برمجة تطبيقات تجريبية لاسترداد قائمة الأغراض. مخصَّصة للاستخدام مع تأكيدات صحة جديدة
  • عدّاء
    • إتاحة التطبيقات الفورية
    • أوقِف androidx.test.runner.AndroidJUnit4 واستبدله بـ androidx.test.ext.junit.runners.AndroidJUnit4.
  • المراقبة
    • أوقِف androidx.test.instrumentationRegistry واستبدله بـ androidx.test.platform.app.instrumentationRegistry وandroidx.test.core.app.ApplicationProvider
  • AndroidTestOrchestrator
    • لا تفعِّل معالجة تغطية الأوركسترا إلا في حال تمرير وسيطات 'coverage' و 'coverageFilePath' فقط.
    • انتظِر فقط إلى أن يتم إدراج برنامج تصحيح الأخطاء عند ضبط الإعداد -debug، وليس لإدراج حالات اختبار ATO. تمت إضافة علامة orchetratorDebug جديدة لتصحيح أخطاء الأوركسترا نفسه.
  • الأساسية
    • عنصر جديد! يتضمّن واجهات برمجة تطبيقات جديدة تتيح الاختبارات المحلية والاختبارات على الجهاز فقط لما يلي:
      • استرداد السياق: ApplicationProvider
      • التحكم في مراحل نشاط النشاط: سيناريو النشاط(إصدار تجريبي)
      • أدوات إنشاء MotionEvent وPackageInfo
      • فئة الخدمات القابلة للدمج
  • الحقيقة
    • عنصر جديد! يتضمّن مواضيع حقيقة مخصّصة للإشعارات والهدف والحزمة وParcelable وMotionEvent.
  • JUnit
    • عنصر جديد! يتضمّن فئة برنامج تشغيل JUnit androidx.test.ext.junit.runners.AndroidJUnit4 التي تتوافق مع الاختبارات المحلية والاختبارات على الجهاز معًا.

Espresso 3.0.2-beta1، Runner 1.0.2-beta1، القواعد 1.0.2-beta1، Monitor 1.0.2-beta1، AndroidTestOrchestrator 1.0.2-beta1 (2018-04-16)

  • الإسبريسو
    • تغيير قد يؤدي إلى عطل في واجهة برمجة التطبيقات:
      • لقد تم لفت انتباهنا في المشكلة رقم 64062890 بأنّنا نستخدم Guava Optional في واجهة برمجة التطبيقات العامة. كان هذا خطأ مريعًا من جانبنا . ونتيجةً لذلك، تم إجراء تغيير علني في واجهة برمجة التطبيقات في هذا الإصدار لمعالجة هذه المشكلة. لقد قدّمنا برنامج تضمين مزعج حول فئة Guava Optional، يُسمى EspressoOptional، وهو يعمل ضمن مساحة الاسم "android.support.test.espresso.util". يحتاج المطوّرون الذين كانوا يستخدمون واجهة برمجة التطبيقات Guava Optional API إلى تغيير عمليات الاستيراد والمراجع لاستخدام EspressoOptional أثناء التحديث إلى هذا الإصدار الجديد. نعتذر عن أيّ إزعاج قد يسبّبه لك هذا الأمر.
    • يتم الآن تمييز واجهات برمجة التطبيقات onView() وonData() بعلامة @CheckReturnValue لمنع الأخطاء
    • تم إصلاح ملف espresso-core POM لكي لا يسحب تبعية "القواعد"، وبدلاً من ذلك، يسحبه مدير عمليات الشركاء (POM). ومن المفترض أن يكون هذا تغييرًا بسبب NoOp للمطوّرين، لأنّه لا يمكن استخدام أغراض الإسبريسو بدون إسبريسو كور.
    • المشكلة 65486414: تبعية جوافة الإسبريسو مفقودة
    • المشكلة 65576174: يتسبب Espresso IdlingResourceRegistry.sync في إخفاق الاختبار الثاني
    • المشكلة 65568629: Espresso.onIdle لا تستخدم IdlingRegistry
    • المشكلة 69333598: espresso 3.0.1 غير متوافق مع play-services-auth:11.6.0 في وحدة مكتبة Android.
    • المشكلة 64062890: نوع اختياري داخلي عرضته واجهة AdapterViewProtocol
    • المشكلة 64091847: يجب ألا يعتمد Espresso 3.0.0 على برنامج الاختبار
    • المشكلة رقم 73722050: فئات espresso-contrib 3.0.2-alpha1 android.rc.{lifecycle/core}
  • إصدار Espresso عن بُعد
    • هذه أداة جديدة تمامًا. لقد فصلنا كل وظائف Espresso المتعددة العمليات عن تلك التي توفّرها أدوات الإسبريسو الأساسية. إنّ هذا الخيار أنظف ومن المفترض أن يقلّل بشكل كبير من الحجم الإجمالي لقهوة الإسبريسو وعدد طرقها.
  • عدّاء
    • قطع تتبُّع تسلسل استدعاء الدوال البرمجية إذا كانت كبيرة جدًا بالنسبة إلى معاملة برنامج صنف. بما أنّ تطبيق AJUR يحتاج إلى إرسال تقارير عن الإخفاقات إلى AM عبر تصنيف IPC للحافظ، نحتاج إلى التأكد من أننا لا نتجاوز الحد الأقصى لمعاملات Binder، وهو 1 ميغابايت لكل عملية.
    • المشكلة 65828576: تعطُّل TestRequestBuilder عند إجراء اختبار في الصف باستخدام @تجاهل
    • المشكلة 37057596: لا نتعامل مع حالات الإخفاق في @beforeClass
  • القواعد
    • تأكّد من إصدار مرجع عن النشاط قيد الاختبار بعد تغييرات مراحل النشاط. خلال مدة الاختبار، يمكن للمرء الآن معالجة النشاط مباشرةً باستخدام المرجع الذي تم الحصول عليه من #getActivity() إذا تم الانتهاء من النشاط وإعادة تشغيله، فإن المرجع الذي يعرضه #getActivity() يشير دائمًا إلى الحالة الحالية للنشاط.
    • المشكلة 64389280: لا يوفّر GrantPermissionالقواعد إمكانية الوصول إلى WRITE_EXTERNAL_STORAGE
    • المشكلة 37065965: تسرب الأنشطة ActivityTestRule بعد تغيير الاتجاه
    • المشكلة 75254050: لا يحدّث ActivityTestRule مثيل النشاط أثناء تغييرات الضبط
    • المشكلة 64464625: يتعذر تشغيل واجهة المستخدم في طريقة end() في النشاط
  • AndroidTestOrchestrator
    • عليك اجتياز علامات -e coverage true -e coverageFilePath /sdcard/foo/ لإنشاء ملفات تغطية في الموقع الجغرافي المحدَّد (يجب أن يكون لدى التطبيق إذن بالكتابة في الموقع الجغرافي المحدَّد). يبدو اصطلاح تسمية ملفات التغطية الآن كما يلي com.foo.Class#method1.ec. لا تتوفّر هذه الميزة إلا في وضع عزل المواقع الإلكترونية. ولا يمكن أيضًا استخدامه مع علامة coverageFile في AndroidJUnitRunner. لأنّ ملفات التغطية التي تم إنشاؤها تحلّ محلّ بعضها
    • عليك اجتياز العلامة -e clearPackageData إذا أردت أن يشغّل الأوركسترا الأمرَين pm clear context.getPackageName() وpm clear targetContext.getPackageName() بين استدعاءات الاختبار. ملاحظة: السياق في الأمر الواضح هو التطبيق ضمن سياق الاختبار.
    • تم حل المشكلة: عند إجراء اختبار فارغ، يُعرف أيضًا بعدم وجود @اختبار داخل الهدف، تكون نتيجة الاختبار مختلفة عن الوضع القديم.
    • المشكلة 72758547: تتسبب أوركسترا الاختبار في عدم اكتمال بيانات تغطية Jacoco، ولا تحتوي سوى على بيانات تشغيل الاختبار الأخير
    • المشكلة 67916042: منسّق الاختبار على Android : توقف التنفيذ عند تعطُّل العملية بسبب OutOfMemory
    • المشكلة 77752735: يتعطل الأوركسترا بسبب transactionToolargeException
    • المشكلة 77549481: يجب على أوركسترا الاختبار تشغيل "pm clear" بعد كل اختبار

Espresso 3.0.2-alpha1، Runner 1.0.2-alpha1، القواعد 1.0.2-alpha1، AndroidTestOrchestrator 1.0.2-alpha1 (2017-12-05)

  • الإسبريسو

    • تتوفّر لدى Intents الآن استجابة قابلة للاستدعاء، ما يسمح بإجراء الاختبارات بعد تسجيل هدف تم تنشيطه ولكن قبل عرض عنصر Instrumentation.ActivityResult.
  • عدّاء

    • يمكنك تقسيم عناصر رصد maven com.android.support.test:monitor:<version>، للمستخدمين الذين يحتاجون إلى MonitoringInstrumentation بدون تشغيل الاختبار وميزات JUnit.

      إذا كنت تستخدم السمة com.android.support.test:runner:<version>، ستسير الأمور على النحو المتوقَّع، لأنّ أداة Gradle تعرض تلقائيًا وحدة monitor كتبعية للوحدة runner.

    • تمت إضافة العلامة newRunListenerOrderMode. عند استخدام true، يتم تشغيل أدوات الاستماع التي يحددها المستخدم قبل أدوات معالجة الصوت التلقائية. (نتوقع أن يصبح هذا السلوك في النهاية الإعداد الافتراضي).

    • المشكلة 65828576: يتعطّل TestRequestBuilder عند إجراء اختبارات في صف تم التعليق عليه باستخدام @Ignore (مستقل بدون إجراء اختبار أو ميزات JUnit).

  • AndroidTestOrchestrator

    • والآن، يتم التعامل مع الاختبارات الفارغة بالطريقة نفسها التي يتم بها التعامل مع AndroidJUnitRunner غير المنسَّقة.
    • بإمكان آلة الأوركسترا الآن التعامل مع إخراجات عادية كبيرة جدًا من "AndroidJUnitRunner".

Espresso 3.0.1, Runner 1.0.1, Rules 1.0.1, AndroidTestOrchestrator 1.0.1 (2017-08-28)

  • الإسبريسو

    • تمت إضافة خيار IdlingPolicy لإيقاف onTimeout() عند إرفاق برنامج تصحيح أخطاء في الجهاز الافتراضي.
    • المشاكل 64024656 و64247586 و64525881: لا تُبلغ عن حالات تعذُّر التحميل لفئة غير ناجحة ما لم يحمِّل المستخدم فئات معيّنة من خلال تضمين وسيطة عامل تشغيل الفئة -e.
    • المشكلة 64877246: أضف الفئات المفقودة إلى ملف JAR للمصادر.
  • عدّاء

    • منطق ShardingFilter مبسّط
    • المشكلة 65025743: أصبح الفلتر @RequiresDevice متوافقًا الآن مع أدوات محاكاة FTL.
  • AndroidTestOrchestrator

    • لا تكرّر حالات تعذُّر التقارير. عندما تتعطل عملية اختبار بعد تعذُّرها، يتم الآن الإبلاغ عن إخفاق واحد فقط للاختبار.
    • إصلاح JavaDoc للأوركسترا.
    • تتم الآن الإشارة إلى الاختبارات على أنها فائتة في حال تعطُّل العملية عن بُعد.
    • تعالج الآن حالات الاختبار التي تم تجاهلها.
    • يتم الآن استبعاد حالات الاختبار التي تم تجاهلها من التذييل لمطابقة النتائج القديمة.
    • إصلاح مشاكل أذونات وقت التشغيل وتتم كتابة تقارير الاختبار الآن على بطاقة SD على نظام التشغيل Android 7.0 (المستوى 24 من واجهة برمجة التطبيقات) والإصدارات الأحدث.

Espresso 3.0.0, Runner 1.0.0, Rules 1.0.0, AndroidTestOrchestrator 1.0.0 (2017-07-25, Announcement)

تغييرات قد تؤدي إلى أعطال

  • جميع العناصر
    • سيتم إيقاف دعم مستويات واجهة برمجة التطبيقات الأقل من 15 – ومع ذلك، لا تزال حزمة minSDK تشير إلى المستوى 9 من واجهة برمجة التطبيقات لمنح المستخدمين الوقت الكافي للترقية
  • الإسبريسو
    • تم حذف الصف android.support.test.espresso.contrib.CountingIdlingResource المتوقف نهائيًا ونقله إلى android.support.test.espresso.idling.CountingIdlingResource
    • يتم الآن نقل واجهة Guava إلى مساحة اسم "داخلية" مختلفة، وإذا كنت تستخدم عن طريق الخطأ واجهة برمجة التطبيقات Guava من خلال مساحات اسم Espresso، قد تحدث أعطال.
      • أزِل أي مراجع للجوافة المظلّلة (.core.deps.guava.).
      • ترقية Support Library إلى 25.4.0 أو إصدار أحدث

المشاكل المعروفة

الميزات الجديدة

  • عدّاء
    • InterceptingActivityFactory و SingleActivityFactory: تتيح إمكانية اختبار نشاط بمعزل عن العالم الخارجي عن طريق تجاوُز طرق مثل startService() و sendBroadcast().
    • إتاحة استخدام JUnitParams مع AndroidJUnitRunner
    • يمكنك بدء التعامل مع @UiThreadTest على مستوى برنامج الاختبار الأساسي وإيقاف @UiThreadTestRule – يؤدي هذا إلى تفعيل التعليق التوضيحي @UiThreadTest مباشرةً على الطرق التي تمت إضافة تعليقات توضيحية إليها باستخدام @Before و @After
    • يتوافق التعليق التوضيحي @SdkSupress الآن مع قيمة maxSdkVersion (المشكلة 37067792)
    • -e classLoader – توفير إمكانية تمرير محملات الفئة باستخدام وسيطات العداء
    • -e filter – أضِف دعمًا لفلاتر JUnit المخصّصة ليتم تحديدها باستخدام وسيطات برنامج التشغيل.
    • -e runnerBuilder – تسمح لمطوّري البرامج بتقديم عمليات تنفيذ RunnerBuilder الخاصة بهم التي يمكنها تحديد ما إذا كان يمكن عرضها مع فئة معيّنة وكيفية إجراء ذلك.
  • القواعد
  • AndroidTestOrchestrator
    • Android Test Orchestrator يوفّر طريقة جديدة لجمع الاختبارات وإجرائها، مع التركيز على التصحيح والعزلة الأوركسترا هي عملية قياس مستقلة، تنتج عملية ركض واحدة لكل اختبار وتجمع النتائج.
      • تؤدي أعطال التطبيق إلى إزالة أدوات الركض وليست الأوركسترا، مما يسمح لمجموعة الاختبار بمواصلة
      • تتطلب هذه الميزة تثبيت حزمة APK الأوركسترا: 'com.android.support.test:orchestrator:1.0.0'
      • يتضمّن الإصدار 1.0 واجهة سطر أوامر فقط، وقد تم التخطيط للدمج مع "استوديو Android" و"ميزات Firebase الاختبارية"

إصلاح الأخطاء

  • الإسبريسو
    • تحسين مزامنة عرض الجذر لتقليل الاهتزاز بشكل كبير
    • إصلاح تلف IdlingResourceRegistry
    • مزامنة أفضل مع عناصر IdlingResource
    • المشكلة 37132680: لا ينتظر Espresso حتى اكتمال إنشاء مربع الحوار قبل تنفيذ الإجراء التالي
    • المشكلة 37103280: يجب أن تشحن قهوة الإسبريسو قواعد ProGuard الخاصة بالمستهلكين حتى لا يُطلب من المستهلكين إضافتها
    • المشكلة 37094726: تحتوي Espresso Intents على تصنيف تطبيقات غير ضروري
    • المشكلة 37093953: الإسبريسو: لا يتوفر التحقق من نص خطأ فارغ/فارغ
    • المشكلة 37071776: يضمِّن espresso-core ملفات جوافا (.pom)
    • المشكلة 37062612: NPE في release()
    • المشكلة 37063389: لا يؤدي استخدام Guava وespresso-web إلى تجميع تبعيات androidTest
    • المشكلة 37070533: إضافة دعم لـ NavigationView في Android Design Support Library
  • عدّاء
    • إصلاح إمكانية استخدام @UiThreadTest مع @Test(timeout = 123)
    • تم إصلاح وسيطة ركض -e notClass.
    • تم إصلاح أخطاء -e log لإتاحة مجموعات الاختبار JUnit3 وJUnit4، بالإضافة إلى أجهزة الركض Parameterized و Enclosed.
    • المشكلة 37663530: انتظار انتهاء جميع الأنشطة قبل وبعد كل طريقة اختبار
    • المشكلة 37132680: لا ينتظر Espresso حتى اكتمال إنشاء مربع الحوار قبل تنفيذ الإجراء التالي
    • المشكلة 37123213: تم تجاهل @RequiresDevice على x86_64 ABI
    • المشكلة 37101485: يتم تجاهل بعض الوسيطات المقدّمة في البيان من أجل AndroidJUnitRunner، مثل حجم الاختبار والتعليق التوضيحي وتصحيح الأخطاء،
    • المشكلة 37082857: فشل تنفيذ اختبار شبه متوازي الإسبريسو على الكائنات الثابتة
    • المشكلة 37063396: لم يتم إعداد السياق باستخدام ProviderTestCase2 (الأسباب NullPointerException)

التغييرات البارزة الأخرى

  • يتم الآن نشر البرامج الثنائية من خلال Google Maven.
  • تم تقليل حجم ملفات espresso-core وespresso-web JAR، وتم الآن تطبيق ProGuard للتبعيات المضمنة
  • تتضمن جميع ملفات .aar الآن قواعد ProGuard
  • إضافة proguard_library.cfg ملف إلى العناصر التي تم إصدارها
  • تحتوي واجهة Tapper على إصدار جديد من sendTap() لتنفيذ

المساهمات الخارجية

Espresso 2.2.2, Runner/Rules 0.5 (2016-02-22، إصدار صامت)

الميزات الجديدة

  • إسبريسو
    • المشكلة 194253: إضافة الدعم لـ NavigationView في مكتبة تصميم دعم Android
    • تمت إضافة عمليات تحقُّق للصور المتحركة والانتقالات المفعّلة.
    • واجهة برمجة تطبيقات ViewMatcher الجديدة: withResourceName()

إصلاح الأخطاء

  • إسبريسو
    • المشكلة 195331: ملفات espressocore تتضمن ملفات pom
    • تم نقل مصدر عدم النشاط لفترة قصيرة من وجهة نظر الإسبريسو.
  • القواعد
    • المشكلة 187249: NPE في Intents.release()
  • عدّاء
    • المشكلة 196066: لا تتجاوز الوسيطة -e log true في AndroidJUnitRunner الاختبار الفعلي
    • انتظار برنامج تصحيح الأخطاء في onCreate() من برنامج التشغيل
    • تم نقل جميع التعليقات التوضيحية للاختبار المتوافقة خارج النظام الأساسي إلى تنسيق ATSL.
    • تمت إزالة عملية تفريغ تتبُّع تسلسل استدعاء الدوال البرمجية بسبب عدم توفّر JSBridge.
    • السعر الثابت: AndroidAnnotatedBuilder

التغييرات البارزة الأخرى

  • انتهت فترة الإصدار التجريبي من "ActivityTestRule" و"UiThreadTestRule" و"IntentsTestRule" و"ServiceTestRule"
  • إضافة ملف إعدادات نمط الرمز البرمجي لتنسيق الرموز الموحّد

Espresso 2.2.1, Runner/Rules 0.4 (2015-09-15)

الميزات الجديدة

  • القواعد
    • تمت إضافة دالة إنشاء IntentsTestRule جديدة لتكون متوافقة تمامًا مع ActivityTestRule
  • عدّاء
    • تمت إضافة تثبيت حالات خاصة متعددة الاستخدامات للمستويات 15 لواجهة برمجة التطبيقات والإصدارات الأقدم.
    • تمت إضافة فلاتر الاستبعاد إلى الفئة والحزمة:
      • إجراء جميع الاختبارات باستثناء تلك ضِمن فئة معيّنة: adb shell am instrument -w -e notClass com.android.foo.FooTest
      • جارٍ تنفيذ الكل باستثناء اختبار واحد: adb shell am instrument -w -e notClass com.android.foo.FooTest#testFoo
      • إجراء جميع الاختبارات باستثناء حزمة معيّنة: adb shell am instrument -w -e notPackage com.android.foo.bar

المساهمات الخارجية

  • إسبريسو
    • 157911: إضافة مطابقة طريقة العرض لنوع الإدخال في كائن EditText
    • 157912: إضافة طريقة مطابقة طرق العرض لمطابقة نص الخطأ على عنصر EditText
    • 150674: إضافة دعامة DrawerActions للأدراج ذات الجاذبية العشوائية
    • 150744: لم يعُد يتم تسريب DrawerActions parentListener
    • 153303: الجاذبية المحدّدة في علامة "هل الدرج مفتوح أم مغلق"؟
    • 157910: إضافة DrawerLayout مصانع إجراءات مفتوحة ومغلقة

إصلاح الأخطاء

  • إسبريسو
    • يضمن ViewActions.closeSoftKeyboard() الآن عدم استخدام لوحة المفاتيح اللينة تمامًا
    • تم إصلاح مشكلة المزامنة في طريقة Espresso.pressBack() في Espresso على المستوى 21 من واجهة برمجة التطبيقات والإصدارات الأحدث
    • مزامنة ثابتة للصور المتحركة لإغلاق لوحة المفاتيح على المستوى 23 من واجهة برمجة التطبيقات
  • القواعد
    • تم إصلاح ServiceTestRule على المستوى 23 من واجهة برمجة التطبيقات، ويجب استدعاء startService() دائمًا باستخدام Intent فاضحة
  • عدّاء
    • تم إصلاح دعم الصف JaCoCo المعطّل
    • تم إصلاح دعم تقسيم الاختبار إلى أجزاء
    • تم إصلاح الحالة غير المتسقة في مشغّل الاختبار بعد انتهاء مهلة الاختبار لنمط JUnit3

التغييرات البارزة الأخرى

  • إصلاحات Javadoc وتحسينات على رسائل الخطأ
  • تجاهل طرق suite() ولا تتجاهل أخطاء init عند استخدام فلاتر الطرق

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

الميزات الجديدة

  • espresso-web 2.2
    • دعم جديد من WebView
  • espresso-core 2.2
    • تم نقل البيانات لاستخدام الإصدار 2 من الخناجر
    • تم نقل البيانات لاستخدام الإصدار 1.3 من Hamcrest
  • espresso-contrib 2.2
    • عمليات التحقّق من إمكانية الوصول
    • دعم الجاذبية DrawerActions
  • القاعدة 0.3
    • قاعدة واحدة (DisableOnAndroidDebug)
  • دالة Runner 0.3
    • الترقية من JUnit v4.10 إلى JUnit v4.12
    • تم نقل البيانات لاستخدام الإصدار 1.3 من Hamcrest

إصلاح الأخطاء

  • تم إصلاح مشكلة تسرّب ParentListener من DrawerActions
  • يتم التعامل مع خطأ الافتراض الآن على أنّه اختبار تجاهل بدلاً من اختبار فاشل
  • تم إصلاح حالات تسريب بيانات MonitoringInstrumentation خلال ExecutorService
  • إصلاح للأنشطة اليتيمة التي تكون عالقة في المرحلة المتوقفة
  • عدِّل Until.scrollFinished() لعرض القيمة "صحيح" إذا لم يتم إنشاء أحداث التمرير. الحماية من NPE المحتمل في UiObject2#setText().

Espresso 2.1، وTest Runner/Rules 0.2، وUIAutomator 2.1.0 (2015-04-21)

تغييرات قد تؤدي إلى أعطال

  • تم تقسيم العناصر في لعبة الركض إلى قسمَين وتم تغيير الاسم من com.android.support.test:testing-support-lib:0.1 إلى com.android.support.test:runner:0.2 و com.android.support.test:rules:0.2.

الميزات الجديدة

  • espresso-intents: هي واجهة برمجة تطبيقات تشبه Mockito تتيح اختبار التفاعل المُحكَم بين الأنشطة من خلال السماح لمؤلفي الاختبار بالتحقق من صحة الطلبات الصادرة وكشفها
    • IntentsTestRule: يوسّع نطاق ActivityTestRule، مع إعداده وإصدارات Espresso-Intents في اختبارات واجهة المستخدم الوظيفية
  • إسبريسو كور
    • ViewActions: تمت إضافة إمكانية تنفيذ تأكيدات عامة قبل تنفيذ الإجراءات. ويفيد ذلك في أُطر العمل الأخرى التي تعتمد على Espresso للتحقق من حالة العرض الهرمي لطريقة العرض أثناء تنفيذ مجموعة اختبار Espresso الحالية
    • حِمل زائد ViewMatchers.withContentDescription() resId
  • القواعد
    • ActivityTestRule: توفر هذه القاعدة اختبارًا وظيفيًا لنشاط واحد
    • تعليقات UiThreadRule وUiThreadTest التوضيحية: تسمح هذه القاعدة بطريقة الاختبار التي تمت إضافة تعليقات توضيحية إليها باستخدام UiThreadTest والتي يتم تنفيذها على سلسلة التعليمات الرئيسية للتطبيق (أو سلسلة محادثات واجهة المستخدم).
    • ServiceTestRule: توفر هذه القاعدة اختبارًا وظيفيًا لإحدى الخدمات.
  • عدّاء
    • ApplicationLifecycleCallback: معاودة الاتصال لمراقبة أحداث مراحل نشاط التطبيق
    • يمكن الآن أيضًا تحديد كل وسيطات برنامج التشغيل في ملف بيان Android باستخدام علامة <meta-data>
  • UIAutomator
    • بإمكان "UiDevice.dumpWindowHierarchy()" الآن قبول File أو OutputStream.

إصلاح الأخطاء

  • إسبريسو
    • تعرض أداة مطابقة المؤشر الآن false إذا لم يتم العثور على العمود، حتى يتمكن Hamcrest من المتابعة إلى المؤشر التالي
    • لم يعد يتم تنفيذ NullPointerException مع PreferenceMatchers withTitle
    • إلغاء تسجيل مورد عدم النشاط لم يعد يجعل Espresso يعتقد أن لدينا موارد مشغولة
    • إصدار محدّث من التعليقات التوضيحية للدعم المُستخدَم من قِبل Espresso Contrib
  • عدّاء
    • يتخطّى "AndroidJUnit4" الآن الاختبارات التي تتضمّن افتراضات غير ناجحة
  • UIAutomator
    • ضبط إعدادات "المراقبون" لمنع "StaleObjectException"

التغييرات البارزة الأخرى

  • يمكنك إضافة رسالة خطأ أفضل عندما لا يمكننا كتابة نص بسلسلة غير لاتينية.

UIAutomator 2.0 (2015-03-12)

يعتمد UI Automator الآن على أدوات Android، ويمكنك إنشاء اختبارات وتنفيذها باستخدام الأمر ./gradlew connectedCheck.

Espresso الإصدار 2.0، Test Runner 0.1 (تاريخ الإصدار: 19-12-2014)

تغييرات قد تؤدي إلى أعطال

  • تم نقل Espresso إلى مساحة اسم جديدة، من android.support.test.espresso إلى android.support.test.espresso.
  • تمت إعادة تسمية قوالب الإسبريسو
    • تغيّر اسم espresso-1.1.jar ليصبح الآن espresso-core-release-2.0.jar.
    • تم نقل واجهة IdlingResource إلى مكتبة منفصلة: espresso-idling-resource-release-2.0.jar
    • أصبح CountingIdlingResource الآن في espresso-contrib-release-2.0.jar (كما يجب أن يكون دائمًا)
  • تمت إزالة اختياري (تبعية جوافة) من واجهة برمجة التطبيقات العامة لدعم إعادة تجميع تبعية الجوافة وتجنب تضارب DEX (مصدر رئيسي لمشكلات التطوير). وتشمل الطرق المتأثّرة ما يلي:
    • ViewAssertion.check()
    • HumanReadables.getViewHierarchyErrorMessage()

الميزات الجديدة

  • الإجراءات
    • ViewActions
      • replaceText()
      • openLink()
      • التمرير سريعًا للأعلى وللأسفل
    • إسبريسو
      • RecyclerViewActions: التعامل مع التفاعلات باستخدام RecyclerViews
      • PickerActions: معالجة التفاعلات مع منتقي Date وTime
  • المطابقات
    • RootMatchers
      • isPlatformPopup()
    • ViewMatchers
      • isJavascriptEnabled()
      • withSpinnerText()
      • withHint()
      • isSelected()
      • hasLinks()
    • LayoutMatchers: أدوات المطابقة لاختبار التخطيط المرتبط بـ i18n
    • CursorMatchers: مجموعة من المُطابقات لكائنات Cursor
  • التأكيدات
    • PositionAssertions، بما في ذلك isLeftOf() وisAbove(): مجموعة من ViewAssertions للتحقق من الموضع النسبي للعناصر على الشاشة
    • LayoutAssertions: تأكيدات لاختبار التصميم المرتبط بـ i18n
  • تطبيق تجريبي: العديد من نماذج الأنشطة/الاختبارات الجديدة
  • غير ذلك
    • Espresso.unregisterIdlingResources() وEspresso.getIdlingResources(): توفير المزيد من المرونة للعمل باستخدام IdlingResources
    • ViewInteraction.withFailureHandler(): يسمح هذا الخيار بتجاوز معالج الفشل من onView().
    • دعم onData() لـ AdapterViews بدعم من CursorAdapters

إصلاح الأخطاء

  • يتطابق ViewMatchers.isDisplayed() مع المشاهدات التي تشغل مساحة الشاشة بأكملها، ولكنها لا تقل عن 90%
  • لم يعد إجراء الاتصال عبر التمرير السريع على DrawerActions.openDrawer() يؤدي إلى ظهور في IdlingResourceTimeoutException

التغييرات البارزة الأخرى

  • تم التبديل من البناء باستخدام Maven إلى Gradle.
  • نقل تبعيات الإسبريسو (Guava وDagger وHamcrest) إلى مكانها لتجنُّب تصادمات "DEX"
  • التغيير إلى عرض حالة النجاح أو الفشل عند التسجيل وإلغاء تسجيل الموارد غير النشطة
  • دعم Lollipop: ضع message.recycle() خلف واجهة لحساب التغييرات المتعلقة بالإصدار
  • تم تبديل مستوى حزمة تطوير البرامج (SDK) المستهدَف إلى 21، يؤثّر ذلك بشكل كبير في التطبيق التجريبي.

الإصدار 1.1 (تاريخ الإصدار: 2014-01-08)

اسبريسو

  • swipeLeft وswipeRight ViewActions جديدان
  • إتاحة النوافذ المتعددة: هي ميزة متقدّمة تتيح إمكانية اختيار النافذة المستهدَفة التي يجب أن يتم تشغيل Espresso من خلالها.
  • تحسينات على TypeTextAction: تسمح هذه السياسة بكتابة النص في طريقة عرض مركّزة مسبقًا، ما يسهّل إلحاق نص.
  • إصلاحات متعددة للأخطاء

مكتبة Espresso Contrib

  • تحتوي هذه المكتبة الجديدة على ميزات مكمّلة لخيار Espresso، ولكنّها ليست جزءًا من المكتبة الأساسية.
  • DrawerActions جديدة للتشغيل في DrawerLayout: تعتمد هذه الميزة على مكتبة دعم Android، وبالتالي نحن نحتفظ بها خارج مكتبة Espresso الأساسية.

نماذج الاختبارات

  • تم نقل هذه الاختبارات إلى مكانها المباشر في الحزمة نفسها مثل التطبيق التجريبي.
  • تم إصلاح مدراء عمليات الشركاء من أجل إزالة طبقات الجوافة المكررة، لذا من المفترض أن تعمل علامة mvn install الآن.