بایگانی یادداشت نسخه آزمایشی، آرشیو یادداشت نسخه آزمایشی، بایگانی یادداشت نسخه آزمایشی

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 است

  • هسته
    • فعالیت های 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-J.Unit 1.1.0-beta01 (06-12-2018)

  • هسته
    • مصنوع پسوند core-ktx kotlin جدید! شامل یک API ActivityScenario.launchActivity مناسب برای kotlin است
    • API جدید ActivityScenario برای راه اندازی فعالیت ها با اهداف سفارشی
    • API جدید ActivityScenario برای دریافت نتیجه Activity
    • ActivityScenario را قابل بسته شدن کنید
  • اسپرسو
    • باResourceNameMatcher و HumanReadables را تغییر دهید تا با API 28 سازگار باشد.
    • توضیحات ReplaceTextAction را به‌روزرسانی کنید تا stringToBeSet را در بر بگیرد
    • پشتیبانی از اسپرسو در حالت Robolectric paused looper.
  • JUnit
    • API جدید ActivityScenarioRule، برای راه‌اندازی خودکار و بستن یک Activity در راه‌اندازی آزمایشی و حذف
    • مصنوع جدید پسوند junit-ktx kotlin! شامل یک API ActivityScenarioRule مناسب برای kotlin است
  • دونده
    • پکیج -e و -e testFile را در هنگام دریافت بسته‌ها از نظر رفتار سازگار کنید
  • حقیقت
    • APIهای bool، parcelable و 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 تنظیم کنید
  • اسپرسو
    • برای کار با انواع غیر رشته ای، با ContentDescription رفع کنید
    • برای استفاده از اسپرسو در روبولکتریک پشتیبانی اضافه کنید
    • شماره 72798625 : اسپرسو ViewMatchers.withText وقتی textAllCaps فعال است کار نمی کند
    • برای تزریق توالی رویدادهای حرکتی، پشتیبانی اضافه کنید
  • مقاصد
    • برای بازیابی لیست مقاصد، API بتا را اضافه کنید. برای استفاده با ادعاهای حقیقت جدید در نظر گرفته شده است
  • دونده
    • پشتیبانی از برنامه های فوری را اضافه کنید
    • 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 نه. یک پرچم جدید ارکستراتورDebug برای اشکال زدایی خود ارکستر اضافه شد
  • هسته
    • مصنوع جدید! شامل API های جدیدی است که از تست های محلی و روی دستگاه برای موارد زیر پشتیبانی می کند:
      • بازیابی زمینه: ApplicationProvider
      • کنترل چرخه حیات فعالیت: ActivityScenario (بتا)
      • سازندگان برای MotionEvent، PackageInfo
      • کلاس کاربردی Parceables
  • حقیقت
    • مصنوع جدید! شامل موضوعات حقیقت سفارشی برای Notification، Intent، Bundle، Parcelable و MotionEvent
  • JUnit
    • مصنوع جدید! شامل JUnit runner class androidx.test.ext.junit.runners.AndroidJUnit4 است که از تست های محلی و روی دستگاه پشتیبانی می کند.

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 (2018-04-16)

  • اسپرسو
    • شکستن تغییر API:
      • در شماره 64062890 متوجه شدیم که از Guava Optional در API عمومی خود استفاده می کردیم. این نظارت وحشتناکی از طرف ما بود. در نتیجه، یک تغییر API عمومی در این نسخه برای رسیدگی به این مشکل وجود دارد. ما یک بسته بندی زشت را در اطراف کلاس Guava Optional معرفی کردیم، به نام EspressoOptional که در فضای نام "android.support.test.espresso.util" زندگی می کند. توسعه‌دهندگانی که از Guava Optional API لو رفته استفاده می‌کردند، باید واردات و مراجع خود را برای استفاده از EspressoOptional در طول به‌روزرسانی به این نسخه جدید تغییر دهند. متاسفم برای ناراحتی که ممکن است ایجاد کند.
    • APIهای onView() و onData() اکنون برای جلوگیری از خطاها @CheckReturnValue علامت گذاری شده اند.
    • فایل POM هسته اسپرسو را ثابت کرد تا وابستگی "قوانین" را ایجاد نکند، در عوض POM با هدف اسپرسو آن را بکشد. این باید یک تغییر NoOp برای توسعه دهندگان باشد زیرا اسپرسو-نیت ها بدون هسته اسپرسو قابل استفاده نیستند.
    • شماره 65486414 : اسپرسو فاقد وابستگی به گواوا است
    • شماره 65576174 : Espresso IdlingResourceRegistry.sync باعث شکست تست دوم می شود
    • شماره 65568629 : Espresso.onIdle از IdlingRegistry استفاده نمی کند
    • شماره 69333598 : اسپرسو 3.0.1 با play-services-auth:11.6.0 در ماژول کتابخانه اندروید ناسازگار است.
    • شماره 64062890 : نوع اختیاری داخلی توسط رابط AdapterViewProtocol آشکار شد
    • شماره 64091847 : اسپرسو 3.0.0 نباید به دونده آزمایشی وابسته باشد
    • شماره 73722050 : کلاس‌های بسته‌های espresso-contrib 3.0.2-alpha1 android.arch.{lifecycle/core}
  • اسپرسو ریموت
    • این یک مصنوع کاملاً جدید است. ما همه عملکردهای چند فرآیندی اسپرسو را خارج از مصنوع هسته اسپرسو جدا کردیم. این تمیزتر است و باید اندازه کلی هسته اسپرسو و تعداد روش آن را به میزان قابل توجهی کاهش دهد.
  • دونده
    • اگر برای تراکنش بایندر بزرگ است، رد پشته را کوتاه کنید. از آنجایی که AJUR باید خرابی ها را از طریق IPC بایندر به AM گزارش کند، باید مطمئن شویم که از حد تراکنش Binder - که 1 مگابایت در هر فرآیند است - تجاوز نمی کنیم.
    • شماره 65828576 : خرابی TestRequestBuilder هنگام اجرای تست در کلاس با @Ignore
    • شماره 37057596 : ما با شکست در @BeforeClass مقابله نمی کنیم
  • قوانین
    • اطمینان حاصل کنید که پس از تغییرات چرخه عمر، یک مرجع در مورد فعالیت مورد آزمایش منتشر کنید. در طول مدت آزمایش، اکنون می‌توانید Activity را مستقیماً با استفاده از مرجع بدست‌آمده از #getActivity() دستکاری کنید، اگر Activity به پایان برسد و مجدداً راه‌اندازی شود، مرجع بازگشتی توسط #getActivity() اکنون همیشه به نمونه فعلی Activity اشاره می‌کند. .
    • شماره 64389280 : GrantPermissionRule WRITE_EXTERNAL_STORAGE را ارائه نمی کند
    • شماره 37065965 : ActivityTestRule فعالیت را پس از تغییر جهت نشت می کند
    • شماره 75254050 : ActivityTestRule نمونه فعالیت را در طول تغییرات پیکربندی به روز نمی کند
    • شماره 64464625 : نمی توان کار رابط کاربری را در متد finish() Activity انجام داد
  • AndroidTestOrchestrator
    • پاس -e coverage true -e coverageFilePath /sdcard/foo/ پرچم‌ها برای تولید فایل‌های پوشش در مکان داده شده (برنامه باید مجوز نوشتن در مکان داده شده را داشته باشد). کنوانسیون نام‌گذاری فایل پوششی اکنون شبیه این com.foo.Class#method1.ec است. توجه داشته باشید، این تنها زمانی پشتیبانی می شود که در حالت ایزوله اجرا شود. همچنین، نمی توان آن را همراه با پرچم coverageFile AndroidJUnitRunner استفاده کرد. از آنجایی که فایل های پوشش تولید شده روی یکدیگر بازنویسی می کنند.
    • اگر می‌خواهید که ارکستراتور دستورات pm clear context.getPackageName() و pm clear targetContext.getPackageName() را در بین فراخوان‌های آزمایشی اجرا کند، پرچم -e clearPackageData ارسال کنید. توجه داشته باشید، متن دستور clear، App under test context است.
    • ثابت - هنگام اجرای یک تست خالی، با نام مستعار. نه @Test در داخل هدف، نتیجه آزمایش با حالت قدیمی متفاوت است.
    • شماره 72758547 : ارکستراتور آزمایشی باعث می‌شود که داده‌های پوشش Jacoco ناقص باشد، فقط آخرین داده‌های اجرای آزمایشی را دارد.
    • شماره 67916042 : Android Test Orchestrator: اجرا در هنگام خرابی Process به دلیل OutOfMemory متوقف شد
    • شماره 77752735 : ارکستراتور برای TransactionTooLargeException از کار می افتد
    • شماره 77549481 : ارکستراتور آزمون باید بعد از هر آزمون "بعد از ظهر" را اجرا کند

Espresso 3.0.2-alpha1، Runner 1.0.2-alpha1، Rules 1.0.2-alpha1، AndroidTestOrchestrator 1.0.2-alpha1 (05-12-2017)

  • اسپرسو

    • Intents اکنون پاسخی قابل فراخوانی دارد که به آزمایش‌ها اجازه می‌دهد بعد از گرفتن یک هدف شلیک شده اما قبل از برگرداندن یک شی Instrumentation.ActivityResult اجرا شوند.
  • دونده

    • مانیتور maven artifact com.android.support.test:monitor:<version> را برای کاربرانی که بدون اجرای آزمایشی و ویژگی‌های JUnit MonitoringInstrumentation نیاز دارند تقسیم کنید.

      اگر از com.android.support.test:runner:<version> استفاده می کنید، همه چیز همانطور که انتظار می رود کار می کند، زیرا Gradle به طور خودکار ماژول monitor را به عنوان یک وابستگی به ماژول runner می کشد.

    • پرچم newRunListenerOrderMode اضافه شد. وقتی true ، شنوندگان تعریف شده توسط کاربر قبل از شنوندگان پیش فرض اجرا می شوند. (ما انتظار داریم که این رفتار در نهایت به حالت پیش فرض تبدیل شود.)

    • شماره 65828576 : TestRequestBuilder هنگام اجرای آزمایشات در کلاسی که با @Ignore مشروح شده است (مستقل بدون اجرای آزمایشی یا ویژگی‌های JUnit) از کار می‌افتد.

  • AndroidTestOrchestrator

    • اکنون آزمایش‌های خالی را مانند AndroidJUnitRunner غیر هماهنگ انجام می‌دهد.
    • Orchestrator اکنون می تواند خروجی استاندارد بسیار بزرگ AndroidJUnitRunner را مدیریت کند.

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

  • اسپرسو

    • یک گزینه IdlingPolicy برای سرکوب onTimeout() زمانی که یک step debugger به VM متصل است اضافه کرد.
    • مسائل 64024656 ، 64247586 و 64525881 : خرابی‌ها را برای بارگیری ناموفق کلاس گزارش نکنید، مگر اینکه کاربر کلاس‌های خاصی را با گنجاندن آرگومان اجراکننده کلاس -e بارگیری کند.
    • شماره 64877246 : کلاس های گمشده را به فایل JAR منابع اضافه کنید.
  • دونده

    • منطق ShardingFilter ساده شده.
    • شماره 65025743 : فیلتر @RequiresDevice اکنون از شبیه سازهای FTL پشتیبانی می کند.
  • AndroidTestOrchestrator

    • خرابی های گزارش را تکرار نکنید. هنگامی که یک فرآیند تست پس از شکست از کار می افتد، اکنون فقط یک شکست برای آزمایش گزارش می شود.
    • Javadoc برای ارکستراتور ثابت شد.
    • اکنون در صورت خرابی فرآیند از راه دور، آزمایش‌ها از دست رفته است.
    • اکنون موارد آزمایش نادیده گرفته شده را کنترل می کند.
    • اکنون موارد آزمایش نادیده گرفته شده را از پاورقی برای مطابقت با نتایج قدیمی حذف می کند.
    • رفع مشکلات مجوز زمان اجرا گزارش‌های آزمایش اکنون روی کارت SD در Android نسخه 7.0 (سطح API 24) و بالاتر نوشته می‌شوند.

Espresso 3.0.0، Runner 1.0.0، Rules 1.0.0، AndroidTestOrchestrator 1.0.0 (25-07-2017، اعلامیه )

شکستن تغییرات

  • تمام مصنوعات
    • کاهش پشتیبانی از سطوح API کمتر از 15 – با این حال، حداقل SDK همچنان به سطح 9 API اشاره می کند تا به کاربران زمان برای ارتقاء بدهد.
  • اسپرسو
    • کلاس منسوخ شده android.support.test.espresso.contrib.CountingIdlingResource حذف شده و به android.support.test.espresso.idling.CountingIdlingResource منتقل شده است.
    • Guava اکنون به یک فضای نام "داخلی" متفاوت منتقل شده است - اگر به طور تصادفی از Guava API از طریق فضاهای نام Espresso استفاده می کنید، ممکن است شکستگی ها را مشاهده کنید.
      • هرگونه ارجاع به گواوا سایه دار را حذف کنید ( .core.deps.guava. )
      • نسخه کتابخانه پشتیبانی خود را به 25.4.0 یا بالاتر ارتقا دهید

مسائل شناخته شده

  • AndroidTestOrchestrator
    • آرگومان های اجراکننده -e numShards و -e shardIndex در حال حاضر پشتیبانی نمی شوند
    • تست های پارامتری در حال حاضر پشتیبانی نمی شوند

ویژگی های جدید

  • دونده
    • InterceptingActivityFactory و SingleActivityFactory - امکان آزمایش یک فعالیت را به صورت جدا از دنیای بیرون با روش‌هایی مانند startService() و sendBroadcast() فراهم می‌کند.
    • برای استفاده از JUnitParams با AndroidJUnitRunner پشتیبانی اضافه کنید
    • مدیریت @UiThreadTest را در سطح اجرا کننده تست اصلی شروع کنید و @UiThreadTestRule را منسوخ کنید – این امکان استفاده از حاشیه نویسی @UiThreadTest را مستقیماً در روش های حاشیه نویسی شده با @Before و @After می کند.
    • حاشیه نویسی @SdkSupress اکنون از مقدار maxSdkVersion پشتیبانی می کند (نسخه 37067792 )
    • -e classLoader – امکان عبور از بارگذارهای کلاس را با استفاده از runner args فراهم می کند
    • -e filter – اضافه کردن پشتیبانی برای فیلترهای JUnit سفارشی که با استفاده از runner args مشخص شوند
    • -e runnerBuilder – به توسعه‌دهندگان اجازه می‌دهد تا پیاده‌سازی‌های خود را از RunnerBuilder ارائه دهند که می‌تواند تعیین کند که آیا و چگونه می‌توانند در برابر یک کلاس خاص اجرا شوند یا خیر.
  • قوانین
  • AndroidTestOrchestrator
    • Android Test Orchestrator روش جدیدی برای جمع آوری و اجرای تست ها با تاکید بر درستی و جداسازی ارائه می دهد. ارکستراتور یک فرآیند ساز مستقل است که برای هر آزمون یک فرآیند دونده ساز را ایجاد می کند و نتایج را جمع آوری می کند.
      • خرابی‌های برنامه، سازهای دونده را از بین می‌برند، اما نه ارکستراتور، و به مجموعه آزمایشی شما اجازه می‌دهد ادامه پیدا کند.
      • به نصب APK ارکستراتور نیاز دارد - 'com.android.support.test:orchestrator:1.0.0'
      • نسخه 1.0 فقط یک رابط خط فرمان دارد. ادغام با Android Studio و Firebase Test Labs برنامه ریزی شده است

رفع اشکال

  • اسپرسو
    • بهبود هماهنگ سازی نمای ریشه برای کاهش قابل توجه پوسته پوسته شدن
    • خرابی IdlingResourceRegistry را برطرف کنید
    • همگام سازی بهتر در برابر اشیاء IdlingResource
    • شماره 37132680 : اسپرسو قبل از انجام عمل بعدی منتظر نمی ماند تا ایجاد دیالوگ کامل شود.
    • شماره 37103280 : اسپرسو باید قوانین مصرف کننده ProGuard را ارسال کند تا مصرف کنندگان مجبور به اضافه کردن آنها نباشند
    • شماره 37094726 : Espresso Intents حاوی برچسب کاربردی غیر ضروری است
    • شماره 37093953 : اسپرسو: بررسی برای متن خطای پوچ/خالی موجود نیست
    • شماره 37071776 : espresso-core فایل های .pom گواوا را جاسازی می کند
    • شماره 37062612 : NPE در حال release()
    • شماره 37063389 : داشتن Guava و espresso-web به عنوان وابستگی androidTest کامپایل نمی شود
    • شماره 37070533 : پشتیبانی از NavigationView را در کتابخانه پشتیبانی طراحی اندروید اضافه کنید
  • دونده
    • رفع توانایی استفاده از @UiThreadTest در ترکیب با @Test(timeout = 123)
    • ثابت -e notClass runner arg
    • -e log ثابت برای پشتیبانی از مجموعه‌های آزمایشی JUnit3 و JUnit4، و همچنین رانرهای Parameterized و Enclosed
    • شماره 37663530 : قبل و بعد از هر روش تست منتظر بمانید تا تمام فعالیت ها به پایان برسد
    • شماره 37132680 : اسپرسو قبل از انجام عمل بعدی منتظر نمی ماند تا ایجاد دیالوگ کامل شود.
    • شماره 37123213 : @RequiresDevice در x86_64 ABI نادیده گرفته شد
    • شماره 37101485 : برخی از آرگومان های ارائه شده توسط مانیفست برای AndroidJUnitRunner - مانند اندازه آزمایش، حاشیه نویسی و اشکال زدایی - نادیده گرفته می شوند
    • شماره 37082857 : اجرای تست نیمه موازی اسپرسو بر روی اجسام ساکن ناموفق است.
    • شماره 37063396 : متن با ProviderTestCase2 مقداردهی اولیه نشده است (باعث NullPointerException می شود)
  • قوانین
  • UiAutomator
    • setUiAutomationFlags() برای استفاده با UiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES - این اجازه می دهد تا UiAutomator در زمانی که سایر سرویس های دسترسی در حال اجرا هستند استفاده شود.
    • شماره 37082813 : setText() در اشیاء خالی EditText اگر سطح API 19 یا کمتر باشد، NullPointerException پرتاب می کند.

سایر تغییرات قابل توجه

  • باینری ها اکنون از طریق Google Maven منتشر می شوند
  • کاهش اندازه فایل‌های JAR espresso-core و espresso-web – وابستگی‌های جاسازی شده اکنون ProGuard اعمال شده است
  • همه فایل‌های .aar اکنون شامل قوانین ProGuard می‌شوند
  • فایل های proguard_library.cfg را به مصنوعات منتشر شده اضافه کنید
  • رابط Tapper دارای نسخه جدیدی از sendTap() برای پیاده سازی است

کمک های خارجی

اسپرسو 2.2.2، Runner/Rules 0.5 (22/02/2016، انتشار بی‌صدا)

ویژگی های جدید

  • اسپرسو
    • شماره 194253 : پشتیبانی از NavigationView را در کتابخانه طراحی پشتیبانی اندروید اضافه کنید
    • بررسی هایی برای انیمیشن ها و انتقال های فعال اضافه شده است
    • API جدید ViewMatcher : withResourceName()

رفع اشکال

  • اسپرسو
    • شماره 195331 : هسته اسپرسو فایل های پوم گواوا را جاسازی می کند
    • منبع بیکار شمارش خارج از اسپرسو کمک کرد
  • قوانین
    • شماره 187249 : NPE در Intents.release()
  • دونده
    • شماره 196066: آرگومان -e log true در AndroidJUnitRunner تست واقعی را دور نمی زند
    • منتظر دیباگر در onCreate() runner باشید
    • تمام حاشیه نویسی تست پشتیبانی شده از پلتفرم و به ATSL منتقل شد
    • حذف ردیابی پشته در مورد هیچ JSBridge
    • AndroidAnnotatedBuilder رفع شد

سایر تغییرات قابل توجه

  • ActivityTestRule ، UiThreadTestRule ، IntentsTestRule و ServiceTestRule از نسخه بتا خارج شده اند
  • فایل تنظیمات سبک کد را برای قالب بندی کد یکنواخت اضافه کنید

اسپرسو 2.2.1، Runner/Rules 0.4 (2015-09-15)

ویژگی های جدید

  • قوانین
    • اضافه شدن سازنده جدید IntentsTestRule برای سازگاری کامل با ActivityTestRule
  • دونده
    • نصب multidex مورد ویژه برای سطوح API 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 view matcher را اضافه کنید
    • 157912 : برای تطبیق متن خطا در یک شی EditText ، view matcher را اضافه کنید
    • 150674 : برای کشوهایی با جاذبه دلخواه، پشتیبانی از DrawerActions اضافه کنید
    • 150744 : DrawerActions دیگر parentListener افشا نمی کند
    • 153303 : گرانش مشخص شده در چک های "کشو باز است یا بسته است"
    • 157910 : کارخانجات باز و بستن DrawerLayout اضافه کنید

رفع اشکال

  • اسپرسو
    • ViewActions.closeSoftKeyboard() اکنون تضمین می کند که صفحه کلید نرم به طور کامل از بین رفته است
    • رفع مشکل همگام‌سازی با روش Espresso.pressBack() Espresso در سطح API 21 و بالاتر
    • همگام سازی ثابت برای انیمیشن های بسته شدن صفحه کلید در سطح API 23
  • قوانین
    • ServiceTestRule در سطح API 23 ثابت شد، startService() همیشه باید با یک Intent صریح فراخوانی شود.
  • دونده
    • پشتیبانی gradle شکسته JaCoCo رفع شد
    • پشتیبانی از اشتراک گذاری تست شکسته ثابت شد
    • وضعیت ناسازگار در دونده آزمایشی پس از وقفه های زمانی آزمون سبک JUnit3 رفع شد

سایر تغییرات قابل توجه

  • اصلاحات جاوادوک و بهبود پیام خطا
  • متدهای suite() را نادیده بگیرید و هنگام استفاده از فیلترهای متد، خطاهای init را نادیده نگیرید

اسپرسو 2.2 / ATSL 0.3 (09-06-2015)

ویژگی های جدید

  • اسپرسو وب 2.2
    • پشتیبانی از WebView جدید
  • اسپرسو هسته 2.2
    • برای استفاده از dagger v2 مهاجرت کرد
    • برای استفاده از hamcrest نسخه 1.3 مهاجرت کرد
  • espresso-contrib 2.2
    • بررسی های دسترسی
    • پشتیبانی گرانشی DrawerActions
  • قوانین 0.3
    • DisableOnAndroidDebug قانون
  • دونده 0.3
    • از JUnit v4.10 به JUnit v4.12 ارتقا دهید
    • برای استفاده از Hamcrest نسخه 1.3 مهاجرت کرد

رفع اشکال

  • DrawerActions نشت ParentListener رفع شد
  • شکست فرضی اکنون به عنوان یک آزمون نادیده گرفته می شود تا یک آزمون شکست خورده
  • موارد فعالیت نشت MonitoringInstrumentation از طریق ExecutorService برطرف کرد
  • برای فعالیت های یتیم که در مرحله متوقف شده گیر کرده بودند، رفع شد
  • Until.scrollFinished() را به‌روزرسانی کنید تا اگر هیچ رویداد اسکرول ایجاد نشد، true را برگردانید. از 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 : یک API شبیه Mockito که با اجازه دادن به نویسندگان آزمون برای تأیید و نادیده گرفتن مقاصد خروجی، تست تعامل هرمتیک را ممکن می‌سازد.
    • IntentsTestRule : ActivityTestRule را گسترش می دهد، مقداردهی اولیه می کند و Espresso-Intent را در تست های رابط کاربری کاربردی منتشر می کند.
  • اسپرسو هسته
    • ViewActions : قابلیت اضافه شده برای اجرای ادعاهای جهانی قبل از اجرای اقدامات. این برای سایر فریمورک‌هایی که در بالای اسپرسو ساخته می‌شوند مفید است تا وضعیت سلسله‌مراتب نمایش را در زمانی که مجموعه آزمایشی اسپرسو موجود اجرا می‌شود، تأیید کند.
    • ViewMatchers.withContentDescription() resId اضافه بار
  • قوانین
    • ActivityTestRule : این قانون تست عملکردی یک فعالیت را ارائه می دهد
    • حاشیه نویسی UiThreadRule و UiThreadTest : این قانون به روش تست حاشیه نویسی شده با UiThreadTest اجازه می دهد تا روی رشته اصلی برنامه (یا رشته UI) اجرا شود.
    • ServiceTestRule : این قانون تست عملکردی یک سرویس را ارائه می دهد
  • دونده
    • ApplicationLifecycleCallback : برگشت به تماس برای نظارت بر رویدادهای چرخه عمر برنامه
    • همه آرگومان های runner اکنون می توانند در فایل مانیفست اندروید با استفاده از تگ <meta-data> نیز مشخص شوند.
  • اتوماتاتور UIA
    • UiDevice.dumpWindowHierarchy() اکنون می تواند یک File یا یک OutputStream بپذیرد

رفع اشکال

  • اسپرسو
    • اگر ستون پیدا نشد، تطبیق مکان‌نما اکنون false را برمی‌گرداند تا Hamcrest بتواند به مکان‌نمای بعدی ادامه دهد.
    • NullPointerException با PreferenceMatchers withTitle دیگر رخ نمی دهد
    • لغو ثبت منبع بیکار دیگر باعث نمی شود که اسپرسو فکر کند ما منابع بیکاری شلوغ داریم
    • نسخه به روز شده توضیحات پشتیبانی که توسط Espresso Contrib استفاده شده است
  • دونده
    • AndroidJUnit4 اکنون از آزمایشات با فرضیات ناموفق صرف نظر می کند
  • اتوماتاتور UIA
    • برای جلوگیری از StaleObjectException تماشاگران را اجرا کنید

سایر تغییرات قابل توجه

  • وقتی نمی‌توانیم متن را با رشته‌ای غیر لاتین تایپ کنیم، پیام خطای بهتری اضافه کنیم

UIAutomator 2.0 (12-03-2015)

UI Automator اکنون بر اساس Android Instrumentation ساخته شده است و می‌توانید با استفاده از دستور ./gradlew connectedCheck آزمایش‌ها را بسازید و اجرا کنید.

اسپرسو نسخه 2.0، تست رانر 0.1 (تاریخ انتشار: 19-12-2014)

شکستن تغییرات

  • اسپرسو به فضای نام جدیدی منتقل شده است، از 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 قرار دارد (همانطور که همیشه باید باشد)
  • اختیاری (وابستگی به گواوا) از API عمومی حذف شده است تا از بسته بندی مجدد وابستگی گواوا پشتیبانی کند و از برخورد 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 (تاریخ انتشار: 08/01/2014)

اسپرسو

  • swipeLeft و swipeRight ViewActions جدید
  • پشتیبانی از چند پنجره: یک ویژگی پیشرفته که امکان انتخاب پنجره مورد نظر را که اسپرسو باید بر روی آن عملیات را اجرا کند، می‌دهد.
  • بهبودهایی در TypeTextAction : به تایپ متن در نمای از پیش متمرکز شده اجازه می‌دهد، که اضافه کردن متن را آسان‌تر می‌کند.
  • رفع اشکالات متعدد

کتابخانه مشارکت اسپرسو

  • این کتابخانه جدید دارای ویژگی هایی است که مکمل اسپرسو هستند، اما بخشی از کتابخانه اصلی نیستند
  • DrawerActions جدید برای عملکرد در DrawerLayout : وابستگی به کتابخانه پشتیبانی اندروید دارد، بنابراین ما آن را خارج از کتابخانه اصلی Espresso نگه می داریم

تست های نمونه

  • این آزمایش‌ها برای زندگی در همان بسته برنامه آزمایشی تغییر مکان داده‌اند
  • Maven POM برای حذف گواوا تکراری رفع شده است، بنابراین mvn install باید اکنون کار کند
،

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 است

  • هسته
    • فعالیت های 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-J.Unit 1.1.0-beta01 (06-12-2018)

  • هسته
    • مصنوع پسوند core-ktx kotlin جدید! شامل یک API ActivityScenario.launchActivity مناسب برای kotlin است
    • API جدید ActivityScenario برای راه اندازی فعالیت ها با اهداف سفارشی
    • API جدید ActivityScenario برای دریافت نتیجه Activity
    • ActivityScenario را قابل بسته شدن کنید
  • اسپرسو
    • باResourceNameMatcher و HumanReadables را تغییر دهید تا با API 28 سازگار باشد.
    • توضیحات ReplaceTextAction را به‌روزرسانی کنید تا stringToBeSet را در بر بگیرد
    • پشتیبانی از اسپرسو در حالت Robolectric paused looper.
  • JUnit
    • API جدید ActivityScenarioRule، برای راه‌اندازی خودکار و بستن یک Activity در راه‌اندازی آزمایشی و حذف
    • مصنوع جدید پسوند junit-ktx kotlin! شامل یک API ActivityScenarioRule مناسب برای kotlin است
  • دونده
    • پکیج -e و -e testFile را در هنگام دریافت بسته‌ها از نظر رفتار سازگار کنید
  • حقیقت
    • APIهای bool، parcelable و 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 تنظیم کنید
  • اسپرسو
    • برای کار با انواع غیر رشته ای، با ContentDescription رفع کنید
    • برای استفاده از اسپرسو در روبولکتریک پشتیبانی اضافه کنید
    • شماره 72798625 : اسپرسو ViewMatchers.withText وقتی textAllCaps فعال است کار نمی کند
    • برای تزریق توالی رویدادهای حرکتی، پشتیبانی اضافه کنید
  • مقاصد
    • برای بازیابی لیست مقاصد، API بتا را اضافه کنید. برای استفاده با ادعاهای حقیقت جدید در نظر گرفته شده است
  • دونده
    • پشتیبانی از برنامه های فوری را اضافه کنید
    • 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 نه. یک پرچم جدید ارکستراتورDebug برای اشکال زدایی خود ارکستر اضافه شد
  • هسته
    • مصنوع جدید! شامل API های جدیدی است که از تست های محلی و روی دستگاه برای موارد زیر پشتیبانی می کند:
      • بازیابی زمینه: ApplicationProvider
      • کنترل چرخه حیات فعالیت: ActivityScenario (بتا)
      • سازندگان برای MotionEvent، PackageInfo
      • کلاس کاربردی Parceables
  • حقیقت
    • مصنوع جدید! شامل موضوعات حقیقت سفارشی برای Notification، Intent، Bundle، Parcelable و MotionEvent
  • JUnit
    • مصنوع جدید! شامل JUnit runner class androidx.test.ext.junit.runners.AndroidJUnit4 است که از تست های محلی و روی دستگاه پشتیبانی می کند.

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 (2018-04-16)

  • اسپرسو
    • شکستن تغییر API:
      • در شماره 64062890 متوجه شدیم که از Guava Optional در API عمومی خود استفاده می کردیم. این نظارت وحشتناکی از طرف ما بود. در نتیجه، یک تغییر API عمومی در این نسخه برای رسیدگی به این مشکل وجود دارد. ما یک بسته بندی زشت را در اطراف کلاس Guava Optional معرفی کردیم، به نام EspressoOptional که در فضای نام "android.support.test.espresso.util" زندگی می کند. توسعه‌دهندگانی که از Guava Optional API لو رفته استفاده می‌کردند، باید واردات و مراجع خود را برای استفاده از EspressoOptional در طول به‌روزرسانی به این نسخه جدید تغییر دهند. متاسفم برای ناراحتی که ممکن است ایجاد کند.
    • APIهای onView() و onData() اکنون برای جلوگیری از خطاها @CheckReturnValue علامت گذاری شده اند.
    • فایل POM هسته اسپرسو را ثابت کرد تا وابستگی "قوانین" را ایجاد نکند، در عوض POM با هدف اسپرسو آن را بکشد. این باید یک تغییر NoOp برای توسعه دهندگان باشد زیرا اسپرسو-نیت ها بدون هسته اسپرسو قابل استفاده نیستند.
    • شماره 65486414 : اسپرسو فاقد وابستگی به گواوا است
    • شماره 65576174 : Espresso IdlingResourceRegistry.sync باعث شکست تست دوم می شود
    • شماره 65568629 : Espresso.onIdle از IdlingRegistry استفاده نمی کند
    • شماره 69333598 : اسپرسو 3.0.1 با play-services-auth:11.6.0 در ماژول کتابخانه اندروید ناسازگار است.
    • شماره 64062890 : نوع اختیاری داخلی توسط رابط AdapterViewProtocol آشکار شد
    • شماره 64091847 : اسپرسو 3.0.0 نباید به دونده آزمایشی وابسته باشد
    • شماره 73722050 : کلاس‌های بسته‌های espresso-contrib 3.0.2-alpha1 android.arch.{lifecycle/core}
  • اسپرسو ریموت
    • این یک مصنوع کاملاً جدید است. ما همه عملکردهای چند فرآیندی اسپرسو را خارج از مصنوع هسته اسپرسو جدا کردیم. این تمیزتر است و باید اندازه کلی هسته اسپرسو و تعداد روش آن را به میزان قابل توجهی کاهش دهد.
  • دونده
    • اگر برای تراکنش بایندر بزرگ است، رد پشته را کوتاه کنید. از آنجایی که AJUR باید خرابی ها را از طریق IPC بایندر به AM گزارش کند، باید مطمئن شویم که از حد تراکنش Binder - که 1 مگابایت در هر فرآیند است - تجاوز نمی کنیم.
    • شماره 65828576 : خرابی TestRequestBuilder هنگام اجرای تست در کلاس با @Ignore
    • شماره 37057596 : ما با شکست در @BeforeClass مقابله نمی کنیم
  • قوانین
    • اطمینان حاصل کنید که پس از تغییرات چرخه عمر، یک مرجع در مورد فعالیت مورد آزمایش منتشر کنید. در طول مدت آزمایش، اکنون می‌توانید Activity را مستقیماً با استفاده از مرجع بدست‌آمده از #getActivity() دستکاری کنید، اگر Activity به پایان برسد و مجدداً راه‌اندازی شود، مرجع بازگشتی توسط #getActivity() اکنون همیشه به نمونه فعلی Activity اشاره می‌کند. .
    • شماره 64389280 : GrantPermissionRule WRITE_EXTERNAL_STORAGE را ارائه نمی کند
    • شماره 37065965 : ActivityTestRule فعالیت را پس از تغییر جهت نشت می کند
    • شماره 75254050 : ActivityTestRule نمونه فعالیت را در طول تغییرات پیکربندی به روز نمی کند
    • شماره 64464625 : نمی توان کار رابط کاربری را در متد finish() Activity انجام داد
  • AndroidTestOrchestrator
    • پاس -e coverage true -e coverageFilePath /sdcard/foo/ پرچم‌ها برای تولید فایل‌های پوشش در مکان داده شده (برنامه باید مجوز نوشتن در مکان داده شده را داشته باشد). کنوانسیون نام‌گذاری فایل پوششی اکنون شبیه این com.foo.Class#method1.ec است. توجه داشته باشید، این تنها زمانی پشتیبانی می شود که در حالت ایزوله اجرا شود. همچنین، نمی توان آن را همراه با پرچم coverageFile AndroidJUnitRunner استفاده کرد. از آنجایی که فایل های پوشش تولید شده روی یکدیگر بازنویسی می کنند.
    • اگر می‌خواهید که ارکستراتور دستورات pm clear context.getPackageName() و pm clear targetContext.getPackageName() را در بین فراخوان‌های آزمایشی اجرا کند، پرچم -e clearPackageData ارسال کنید. توجه داشته باشید، متن دستور clear، App under test context است.
    • ثابت - هنگام اجرای یک تست خالی، با نام مستعار. نه @Test در داخل هدف، نتیجه آزمایش با حالت قدیمی متفاوت است.
    • شماره 72758547 : ارکستراتور آزمایشی باعث می‌شود که داده‌های پوشش Jacoco ناقص باشد، فقط آخرین داده‌های اجرای آزمایشی را دارد.
    • شماره 67916042 : Android Test Orchestrator: اجرا در هنگام خرابی Process به دلیل OutOfMemory متوقف شد
    • شماره 77752735 : ارکستراتور برای TransactionTooLargeException از کار می افتد
    • شماره 77549481 : ارکستراتور آزمون باید بعد از هر آزمون "بعد از ظهر" را اجرا کند

Espresso 3.0.2-alpha1، Runner 1.0.2-alpha1، Rules 1.0.2-alpha1، AndroidTestOrchestrator 1.0.2-alpha1 (05-12-2017)

  • اسپرسو

    • Intents اکنون پاسخی قابل فراخوانی دارد که به آزمایش‌ها اجازه می‌دهد بعد از گرفتن یک هدف شلیک شده اما قبل از برگرداندن یک شی Instrumentation.ActivityResult اجرا شوند.
  • دونده

    • مانیتور maven artifact com.android.support.test:monitor:<version> را برای کاربرانی که بدون اجرای آزمایشی و ویژگی‌های JUnit MonitoringInstrumentation نیاز دارند تقسیم کنید.

      اگر از com.android.support.test:runner:<version> استفاده می کنید، همه چیز همانطور که انتظار می رود کار می کند، زیرا Gradle به طور خودکار ماژول monitor را به عنوان یک وابستگی به ماژول runner می کشد.

    • پرچم newRunListenerOrderMode اضافه شد. وقتی true ، شنوندگان تعریف شده توسط کاربر قبل از شنوندگان پیش فرض اجرا می شوند. (ما انتظار داریم که این رفتار در نهایت به حالت پیش فرض تبدیل شود.)

    • شماره 65828576 : TestRequestBuilder هنگام اجرای آزمایشات در کلاسی که با @Ignore مشروح شده است (مستقل بدون اجرای آزمایشی یا ویژگی‌های JUnit) از کار می‌افتد.

  • AndroidTestOrchestrator

    • اکنون آزمایش‌های خالی را مانند AndroidJUnitRunner غیر هماهنگ انجام می‌دهد.
    • Orchestrator اکنون می تواند خروجی استاندارد بسیار بزرگ AndroidJUnitRunner را مدیریت کند.

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

  • اسپرسو

    • یک گزینه IdlingPolicy برای سرکوب onTimeout() زمانی که یک step debugger به VM متصل است اضافه کرد.
    • مسائل 64024656 ، 64247586 و 64525881 : خرابی‌ها را برای بارگیری ناموفق کلاس گزارش نکنید، مگر اینکه کاربر کلاس‌های خاصی را با گنجاندن آرگومان اجراکننده کلاس -e بارگیری کند.
    • شماره 64877246 : کلاس های گمشده را به فایل JAR منابع اضافه کنید.
  • دونده

    • منطق ShardingFilter ساده شده.
    • شماره 65025743 : فیلتر @RequiresDevice اکنون از شبیه سازهای FTL پشتیبانی می کند.
  • AndroidTestOrchestrator

    • خرابی های گزارش را تکرار نکنید. هنگامی که یک فرآیند تست پس از شکست از کار می افتد، اکنون فقط یک شکست برای آزمایش گزارش می شود.
    • Javadoc برای ارکستراتور ثابت شد.
    • اکنون در صورت خرابی فرآیند از راه دور، آزمایش‌ها از دست رفته است.
    • اکنون موارد آزمایش نادیده گرفته شده را کنترل می کند.
    • اکنون موارد آزمایش نادیده گرفته شده را از پاورقی برای مطابقت با نتایج قدیمی حذف می کند.
    • رفع مشکلات مجوز زمان اجرا گزارش‌های آزمایش اکنون روی کارت SD در Android نسخه 7.0 (سطح API 24) و بالاتر نوشته می‌شوند.

Espresso 3.0.0، Runner 1.0.0، Rules 1.0.0، AndroidTestOrchestrator 1.0.0 (25-07-2017، اعلامیه )

شکستن تغییرات

  • تمام مصنوعات
    • کاهش پشتیبانی از سطوح API کمتر از 15 – با این حال، حداقل SDK همچنان به سطح 9 API اشاره می کند تا به کاربران زمان برای ارتقاء بدهد.
  • اسپرسو
    • کلاس منسوخ شده android.support.test.espresso.contrib.CountingIdlingResource حذف شده و به android.support.test.espresso.idling.CountingIdlingResource منتقل شده است.
    • Guava اکنون به یک فضای نام "داخلی" متفاوت منتقل شده است - اگر به طور تصادفی از Guava API از طریق فضاهای نام Espresso استفاده می کنید، ممکن است شکستگی ها را مشاهده کنید.
      • هرگونه ارجاع به گواوا سایه دار را حذف کنید ( .core.deps.guava. )
      • نسخه کتابخانه پشتیبانی خود را به 25.4.0 یا بالاتر ارتقا دهید

مسائل شناخته شده

  • AndroidTestOrchestrator
    • آرگومان های اجراکننده -e numShards و -e shardIndex در حال حاضر پشتیبانی نمی شوند
    • تست های پارامتری در حال حاضر پشتیبانی نمی شوند

ویژگی های جدید

  • دونده
    • InterceptingActivityFactory و SingleActivityFactory - امکان آزمایش یک فعالیت را به صورت جدا از دنیای بیرون با روش‌هایی مانند startService() و sendBroadcast() فراهم می‌کند.
    • برای استفاده از JUnitParams با AndroidJUnitRunner پشتیبانی اضافه کنید
    • مدیریت @UiThreadTest را در سطح اجرا کننده تست اصلی شروع کنید و @UiThreadTestRule را منسوخ کنید – این امکان استفاده از حاشیه نویسی @UiThreadTest را مستقیماً در روش های حاشیه نویسی شده با @Before و @After می کند.
    • حاشیه نویسی @SdkSupress اکنون از مقدار maxSdkVersion پشتیبانی می کند (نسخه 37067792 )
    • -e classLoader – امکان عبور از بارگذارهای کلاس را با استفاده از runner args فراهم می کند
    • -e filter – اضافه کردن پشتیبانی برای فیلترهای JUnit سفارشی که با استفاده از runner args مشخص شوند
    • -e runnerBuilder – به توسعه‌دهندگان اجازه می‌دهد تا پیاده‌سازی‌های خود را از RunnerBuilder ارائه دهند که می‌تواند تعیین کند که آیا و چگونه می‌توانند در برابر یک کلاس خاص اجرا شوند یا خیر.
  • قوانین
  • AndroidTestOrchestrator
    • Android Test Orchestrator روش جدیدی برای جمع آوری و اجرای تست ها با تاکید بر درستی و جداسازی ارائه می دهد. ارکستراتور یک فرآیند ساز مستقل است که برای هر آزمون یک فرآیند دونده ساز را ایجاد می کند و نتایج را جمع آوری می کند.
      • خرابی‌های برنامه، سازهای دونده را از بین می‌برند، اما نه ارکستراتور، و به مجموعه آزمایشی شما اجازه می‌دهد ادامه پیدا کند.
      • به نصب APK ارکستراتور نیاز دارد - 'com.android.support.test:orchestrator:1.0.0'
      • نسخه 1.0 فقط یک رابط خط فرمان دارد. ادغام با Android Studio و Firebase Test Labs برنامه ریزی شده است

رفع اشکال

  • اسپرسو
    • بهبود هماهنگ سازی نمای ریشه برای کاهش قابل توجه پوسته پوسته شدن
    • خرابی IdlingResourceRegistry را برطرف کنید
    • همگام سازی بهتر در برابر اشیاء IdlingResource
    • شماره 37132680 : اسپرسو قبل از انجام عمل بعدی منتظر نمی ماند تا ایجاد دیالوگ کامل شود.
    • شماره 37103280 : اسپرسو باید قوانین مصرف کننده ProGuard را ارسال کند تا مصرف کنندگان مجبور به اضافه کردن آنها نباشند
    • شماره 37094726 : Espresso Intents حاوی برچسب کاربردی غیر ضروری است
    • شماره 37093953 : اسپرسو: بررسی برای متن خطای پوچ/خالی موجود نیست
    • شماره 37071776 : espresso-core فایل های .pom گواوا را جاسازی می کند
    • شماره 37062612 : NPE در حال release()
    • شماره 37063389 : داشتن Guava و espresso-web به عنوان وابستگی androidTest کامپایل نمی شود
    • شماره 37070533 : پشتیبانی از NavigationView را در کتابخانه پشتیبانی طراحی اندروید اضافه کنید
  • دونده
    • رفع توانایی استفاده از @UiThreadTest در ترکیب با @Test(timeout = 123)
    • ثابت -e notClass runner arg
    • -e log ثابت برای پشتیبانی از مجموعه‌های آزمایشی JUnit3 و JUnit4، و همچنین رانرهای Parameterized و Enclosed
    • شماره 37663530 : قبل و بعد از هر روش تست منتظر بمانید تا تمام فعالیت ها به پایان برسد
    • شماره 37132680 : اسپرسو قبل از انجام عمل بعدی منتظر نمی ماند تا ایجاد دیالوگ کامل شود.
    • شماره 37123213 : @RequiresDevice در x86_64 ABI نادیده گرفته شد
    • شماره 37101485 : برخی از آرگومان های ارائه شده توسط مانیفست برای AndroidJUnitRunner - مانند اندازه آزمایش، حاشیه نویسی و اشکال زدایی - نادیده گرفته می شوند
    • شماره 37082857 : اجرای تست نیمه موازی اسپرسو بر روی اجسام ساکن ناموفق است.
    • شماره 37063396 : متن با ProviderTestCase2 مقداردهی اولیه نشده است (باعث NullPointerException می شود)
  • قوانین
  • UiAutomator
    • setUiAutomationFlags() برای استفاده با UiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES - این اجازه می دهد تا UiAutomator در زمانی که سایر سرویس های دسترسی در حال اجرا هستند استفاده شود.
    • شماره 37082813 : setText() در اشیاء خالی EditText اگر سطح API 19 یا کمتر باشد، NullPointerException پرتاب می کند.

سایر تغییرات قابل توجه

  • باینری ها اکنون از طریق Google Maven منتشر می شوند
  • کاهش اندازه فایل‌های JAR espresso-core و espresso-web – وابستگی‌های جاسازی شده اکنون ProGuard اعمال شده است
  • همه فایل‌های .aar اکنون شامل قوانین ProGuard می‌شوند
  • فایل های proguard_library.cfg را به مصنوعات منتشر شده اضافه کنید
  • رابط Tapper دارای نسخه جدیدی از sendTap() برای پیاده سازی است

کمک های خارجی

اسپرسو 2.2.2، Runner/Rules 0.5 (22/02/2016، انتشار بی‌صدا)

ویژگی های جدید

  • اسپرسو
    • شماره 194253 : پشتیبانی از NavigationView را در کتابخانه طراحی پشتیبانی اندروید اضافه کنید
    • بررسی هایی برای انیمیشن ها و انتقال های فعال اضافه شده است
    • API جدید ViewMatcher : withResourceName()

رفع اشکال

  • اسپرسو
    • شماره 195331 : هسته اسپرسو فایل های پوم گواوا را جاسازی می کند
    • منبع بیکار شمارش خارج از اسپرسو کمک کرد
  • قوانین
    • شماره 187249 : NPE در Intents.release()
  • دونده
    • شماره 196066: آرگومان -e log true در AndroidJUnitRunner تست واقعی را دور نمی زند
    • منتظر دیباگر در onCreate() runner باشید
    • تمام حاشیه نویسی تست پشتیبانی شده از پلتفرم و به ATSL منتقل شد
    • حذف ردیابی پشته در مورد هیچ JSBridge
    • AndroidAnnotatedBuilder رفع شد

سایر تغییرات قابل توجه

  • ActivityTestRule ، UiThreadTestRule ، IntentsTestRule و ServiceTestRule از نسخه بتا خارج شده اند
  • فایل تنظیمات سبک کد را برای قالب بندی کد یکنواخت اضافه کنید

اسپرسو 2.2.1، Runner/Rules 0.4 (2015-09-15)

ویژگی های جدید

  • قوانین
    • اضافه شدن سازنده جدید IntentsTestRule برای سازگاری کامل با ActivityTestRule
  • دونده
    • نصب multidex مورد ویژه برای سطوح API 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 view matcher را اضافه کنید
    • 157912 : برای تطبیق متن خطا در یک شی EditText ، view matcher را اضافه کنید
    • 150674 : برای کشوهایی با جاذبه دلخواه، پشتیبانی از DrawerActions اضافه کنید
    • 150744 : DrawerActions دیگر parentListener افشا نمی کند
    • 153303 : گرانش مشخص شده در چک های "کشو باز است یا بسته است"
    • 157910 : کارخانجات باز و بستن DrawerLayout اضافه کنید

رفع اشکال

  • اسپرسو
    • ViewActions.closeSoftKeyboard() اکنون تضمین می کند که صفحه کلید نرم به طور کامل از بین رفته است
    • رفع مشکل همگام‌سازی با روش Espresso.pressBack() Espresso در سطح API 21 و بالاتر
    • همگام سازی ثابت برای انیمیشن های بسته شدن صفحه کلید در سطح API 23
  • قوانین
    • ServiceTestRule در سطح API 23 ثابت شد، startService() همیشه باید با یک Intent صریح فراخوانی شود.
  • دونده
    • پشتیبانی gradle شکسته JaCoCo رفع شد
    • پشتیبانی از اشتراک گذاری تست شکسته ثابت شد
    • وضعیت ناسازگار در دونده آزمایشی پس از وقفه های زمانی آزمون سبک JUnit3 رفع شد

سایر تغییرات قابل توجه

  • اصلاحات جاوادوک و بهبود پیام خطا
  • متدهای suite() را نادیده بگیرید و هنگام استفاده از فیلترهای متد، خطاهای init را نادیده نگیرید

اسپرسو 2.2 / ATSL 0.3 (09-06-2015)

ویژگی های جدید

  • اسپرسو وب 2.2
    • پشتیبانی از WebView جدید
  • اسپرسو هسته 2.2
    • برای استفاده از dagger v2 مهاجرت کرد
    • برای استفاده از hamcrest نسخه 1.3 مهاجرت کرد
  • espresso-contrib 2.2
    • بررسی های دسترسی
    • پشتیبانی گرانشی DrawerActions
  • قوانین 0.3
    • DisableOnAndroidDebug قانون
  • دونده 0.3
    • از JUnit v4.10 به JUnit v4.12 ارتقا دهید
    • برای استفاده از Hamcrest نسخه 1.3 مهاجرت کرد

رفع اشکال

  • DrawerActions نشت ParentListener رفع شد
  • شکست فرضی اکنون به عنوان یک آزمون نادیده گرفته می شود تا یک آزمون شکست خورده
  • موارد فعالیت نشت MonitoringInstrumentation از طریق ExecutorService برطرف کرد
  • برای فعالیت های یتیم که در مرحله متوقف شده گیر کرده بودند، رفع شد
  • Until.scrollFinished() را به‌روزرسانی کنید تا اگر هیچ رویداد اسکرول ایجاد نشد، true را برگردانید. از 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 : یک API شبیه Mockito که با اجازه دادن به نویسندگان آزمون برای تأیید و نادیده گرفتن مقاصد خروجی، تست تعامل هرمتیک را ممکن می‌سازد.
    • IntentsTestRule : ActivityTestRule را گسترش می دهد، مقداردهی اولیه می کند و Espresso-Intent را در تست های رابط کاربری کاربردی منتشر می کند.
  • اسپرسو هسته
    • ViewActions : قابلیت اضافه شده برای اجرای ادعاهای جهانی قبل از اجرای اقدامات. این برای سایر فریمورک‌هایی که در بالای اسپرسو ساخته می‌شوند مفید است تا وضعیت سلسله‌مراتب نمایش را در زمانی که مجموعه آزمایشی اسپرسو موجود اجرا می‌شود، تأیید کند.
    • ViewMatchers.withContentDescription() resId اضافه بار
  • قوانین
    • ActivityTestRule : این قانون تست عملکردی یک فعالیت را ارائه می دهد
    • حاشیه نویسی UiThreadRule و UiThreadTest : این قانون به روش تست حاشیه نویسی شده با UiThreadTest اجازه می دهد تا روی رشته اصلی برنامه (یا رشته UI) اجرا شود.
    • ServiceTestRule : این قانون تست عملکردی یک سرویس را ارائه می دهد
  • دونده
    • ApplicationLifecycleCallback : برگشت به تماس برای نظارت بر رویدادهای چرخه عمر برنامه
    • همه آرگومان های runner اکنون می توانند در فایل مانیفست اندروید با استفاده از تگ <meta-data> نیز مشخص شوند.
  • اتوماتاتور UIA
    • UiDevice.dumpWindowHierarchy() اکنون می تواند یک File یا یک OutputStream بپذیرد

رفع اشکال

  • اسپرسو
    • اگر ستون پیدا نشد، تطبیق مکان‌نما اکنون false را برمی‌گرداند تا Hamcrest بتواند به مکان‌نمای بعدی ادامه دهد.
    • NullPointerException با PreferenceMatchers withTitle دیگر رخ نمی دهد
    • لغو ثبت منبع بیکار دیگر باعث نمی شود که اسپرسو فکر کند ما منابع بیکاری شلوغ داریم
    • نسخه به روز شده توضیحات پشتیبانی که توسط Espresso Contrib استفاده شده است
  • دونده
    • AndroidJUnit4 اکنون از آزمایشات با فرضیات ناموفق صرف نظر می کند
  • اتوماتاتور UIA
    • برای جلوگیری از StaleObjectException تماشاگران را اجرا کنید

سایر تغییرات قابل توجه

  • وقتی نمی‌توانیم متن را با رشته‌ای غیر لاتین تایپ کنیم، پیام خطای بهتری اضافه کنیم

UIAutomator 2.0 (12-03-2015)

UI Automator اکنون بر اساس Android Instrumentation ساخته شده است و می‌توانید با استفاده از دستور ./gradlew connectedCheck آزمایش‌ها را بسازید و اجرا کنید.

اسپرسو نسخه 2.0، تست رانر 0.1 (تاریخ انتشار: 19-12-2014)

شکستن تغییرات

  • اسپرسو به فضای نام جدیدی منتقل شده است، از 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 قرار دارد (همانطور که همیشه باید باشد)
  • اختیاری (وابستگی به گواوا) از API عمومی حذف شده است تا از بسته بندی مجدد وابستگی گواوا پشتیبانی کند و از برخورد 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 (تاریخ انتشار: 08/01/2014)

اسپرسو

  • swipeLeft و swipeRight ViewActions جدید
  • پشتیبانی از چند پنجره: یک ویژگی پیشرفته که امکان انتخاب پنجره مورد نظر را که اسپرسو باید بر روی آن عملیات را اجرا کند، می‌دهد.
  • بهبودهایی در TypeTextAction : به تایپ متن در نمای از پیش متمرکز شده اجازه می‌دهد، که اضافه کردن متن را آسان‌تر می‌کند.
  • رفع اشکالات متعدد

کتابخانه مشارکت اسپرسو

  • این کتابخانه جدید دارای ویژگی هایی است که مکمل اسپرسو هستند، اما بخشی از کتابخانه اصلی نیستند
  • DrawerActions جدید برای عملکرد در DrawerLayout : وابستگی به کتابخانه پشتیبانی اندروید دارد، بنابراین ما آن را خارج از کتابخانه اصلی Espresso نگه می داریم

تست های نمونه

  • این آزمایش‌ها برای زندگی در همان بسته برنامه آزمایشی تغییر مکان داده‌اند
  • Maven POM برای حذف گواوا تکراری رفع شده است، بنابراین mvn install باید اکنون کار کند
،

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 است

  • هسته
    • فعالیت های 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-J.Unit 1.1.0-beta01 (06-12-2018)

  • هسته
    • مصنوع پسوند core-ktx kotlin جدید! شامل یک API ActivityScenario.launchActivity مناسب برای kotlin است
    • API جدید ActivityScenario برای راه اندازی فعالیت ها با اهداف سفارشی
    • API جدید ActivityScenario برای دریافت نتیجه Activity
    • ActivityScenario را قابل بسته شدن کنید
  • اسپرسو
    • باResourceNameMatcher و HumanReadables را تغییر دهید تا با API 28 سازگار باشد.
    • توضیحات ReplaceTextAction را به‌روزرسانی کنید تا stringToBeSet را در بر بگیرد
    • پشتیبانی از اسپرسو در حالت Robolectric paused looper.
  • JUnit
    • API جدید ActivityScenarioRule، برای راه‌اندازی خودکار و بستن یک Activity در راه‌اندازی آزمایشی و حذف
    • مصنوع جدید پسوند junit-ktx kotlin! شامل یک API ActivityScenarioRule مناسب برای kotlin است
  • دونده
    • پکیج -e و -e testFile را در هنگام دریافت بسته‌ها از نظر رفتار سازگار کنید
  • حقیقت
    • APIهای bool، parcelable و 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 تنظیم کنید
  • اسپرسو
    • برای کار با انواع غیر رشته ای، با ContentDescription رفع کنید
    • برای استفاده از اسپرسو در روبولکتریک پشتیبانی اضافه کنید
    • شماره 72798625 : اسپرسو ViewMatchers.withText وقتی textAllCaps فعال است کار نمی کند
    • برای تزریق توالی رویدادهای حرکتی، پشتیبانی اضافه کنید
  • مقاصد
    • برای بازیابی لیست مقاصد، API بتا را اضافه کنید. برای استفاده با ادعاهای حقیقت جدید در نظر گرفته شده است
  • دونده
    • پشتیبانی از برنامه های فوری را اضافه کنید
    • 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 نه. یک پرچم جدید ارکستراتورDebug برای اشکال زدایی خود ارکستر اضافه شد
  • هسته
    • مصنوع جدید! شامل API های جدیدی است که از تست های محلی و روی دستگاه برای موارد زیر پشتیبانی می کند:
      • بازیابی زمینه: ApplicationProvider
      • کنترل چرخه حیات فعالیت: ActivityScenario (بتا)
      • سازندگان برای MotionEvent، PackageInfo
      • کلاس کاربردی Parceables
  • حقیقت
    • مصنوع جدید! شامل موضوعات حقیقت سفارشی برای Notification، Intent، Bundle، Parcelable و MotionEvent
  • JUnit
    • مصنوع جدید! شامل JUnit runner class androidx.test.ext.junit.runners.AndroidJUnit4 است که از تست های محلی و روی دستگاه پشتیبانی می کند.

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 (2018-04-16)

  • اسپرسو
    • شکستن تغییر API:
      • در شماره 64062890 متوجه شدیم که از Guava Optional در API عمومی خود استفاده می کردیم. این نظارت وحشتناکی از طرف ما بود. در نتیجه، یک تغییر API عمومی در این نسخه برای رسیدگی به این مشکل وجود دارد. ما یک بسته بندی زشت را در اطراف کلاس Guava Optional معرفی کردیم، به نام EspressoOptional که در فضای نام "android.support.test.espresso.util" زندگی می کند. توسعه‌دهندگانی که از Guava Optional API لو رفته استفاده می‌کردند، باید واردات و مراجع خود را برای استفاده از EspressoOptional در طول به‌روزرسانی به این نسخه جدید تغییر دهند. متاسفم برای ناراحتی که ممکن است ایجاد کند.
    • APIهای onView() و onData() اکنون برای جلوگیری از خطاها @CheckReturnValue علامت گذاری شده اند.
    • فایل POM هسته اسپرسو را ثابت کرد تا وابستگی "قوانین" را ایجاد نکند، در عوض POM با هدف اسپرسو آن را بکشد. این باید یک تغییر NoOp برای توسعه دهندگان باشد زیرا اسپرسو-نیت ها بدون هسته اسپرسو قابل استفاده نیستند.
    • شماره 65486414 : اسپرسو فاقد وابستگی به گواوا است
    • شماره 65576174 : Espresso IdlingResourceRegistry.sync باعث شکست تست دوم می شود
    • شماره 65568629 : Espresso.onIdle از IdlingRegistry استفاده نمی کند
    • شماره 69333598 : اسپرسو 3.0.1 با play-services-auth:11.6.0 در ماژول کتابخانه اندروید ناسازگار است.
    • شماره 64062890 : نوع اختیاری داخلی توسط رابط AdapterViewProtocol آشکار شد
    • شماره 64091847 : اسپرسو 3.0.0 نباید به دونده آزمایشی وابسته باشد
    • شماره 73722050 : کلاس‌های بسته‌های espresso-contrib 3.0.2-alpha1 android.arch.{lifecycle/core}
  • اسپرسو ریموت
    • این یک مصنوع کاملاً جدید است. ما همه عملکردهای چند فرآیندی اسپرسو را خارج از مصنوع هسته اسپرسو جدا کردیم. این تمیزتر است و باید اندازه کلی هسته اسپرسو و تعداد روش آن را به میزان قابل توجهی کاهش دهد.
  • دونده
    • اگر برای تراکنش بایندر بزرگ است، رد پشته را کوتاه کنید. از آنجایی که AJUR باید خرابی ها را از طریق IPC بایندر به AM گزارش کند، باید مطمئن شویم که از حد تراکنش Binder - که 1 مگابایت در هر فرآیند است - تجاوز نمی کنیم.
    • شماره 65828576 : خرابی TestRequestBuilder هنگام اجرای تست در کلاس با @Ignore
    • شماره 37057596 : ما با شکست در @BeforeClass مقابله نمی کنیم
  • قوانین
    • اطمینان حاصل کنید که پس از تغییرات چرخه عمر، یک مرجع در مورد فعالیت مورد آزمایش منتشر کنید. در طول مدت آزمایش، اکنون می‌توانید Activity را مستقیماً با استفاده از مرجع بدست‌آمده از #getActivity() دستکاری کنید، اگر Activity به پایان برسد و مجدداً راه‌اندازی شود، مرجع بازگشتی توسط #getActivity() اکنون همیشه به نمونه فعلی Activity اشاره می‌کند. .
    • شماره 64389280 : GrantPermissionRule WRITE_EXTERNAL_STORAGE را ارائه نمی کند
    • شماره 37065965 : ActivityTestRule فعالیت را پس از تغییر جهت نشت می کند
    • شماره 75254050 : ActivityTestRule نمونه فعالیت را در طول تغییرات پیکربندی به روز نمی کند
    • شماره 64464625 : نمی توان کار رابط کاربری را در متد finish() Activity انجام داد
  • AndroidTestOrchestrator
    • پاس -e coverage true -e coverageFilePath /sdcard/foo/ پرچم‌ها برای تولید فایل‌های پوشش در مکان داده شده (برنامه باید مجوز نوشتن در مکان داده شده را داشته باشد). کنوانسیون نام‌گذاری فایل پوششی اکنون شبیه این com.foo.Class#method1.ec است. توجه داشته باشید، این تنها زمانی پشتیبانی می شود که در حالت ایزوله اجرا شود. همچنین، نمی توان آن را همراه با پرچم coverageFile AndroidJUnitRunner استفاده کرد. از آنجایی که فایل های پوشش تولید شده روی یکدیگر بازنویسی می کنند.
    • اگر می‌خواهید که ارکستراتور دستورات pm clear context.getPackageName() و pm clear targetContext.getPackageName() را در بین فراخوان‌های آزمایشی اجرا کند، پرچم -e clearPackageData ارسال کنید. توجه داشته باشید، متن دستور clear، App under test context است.
    • ثابت - هنگام اجرای یک تست خالی، با نام مستعار. نه @Test در داخل هدف، نتیجه آزمایش با حالت قدیمی متفاوت است.
    • شماره 72758547 : ارکستراتور آزمایشی باعث می‌شود که داده‌های پوشش Jacoco ناقص باشد، فقط آخرین داده‌های اجرای آزمایشی را دارد.
    • شماره 67916042 : Android Test Orchestrator: اجرا در هنگام خرابی Process به دلیل OutOfMemory متوقف شد
    • شماره 77752735 : ارکستراتور برای TransactionTooLargeException از کار می افتد
    • شماره 77549481 : ارکستراتور آزمون باید بعد از هر آزمون "بعد از ظهر" را اجرا کند

Espresso 3.0.2-alpha1، Runner 1.0.2-alpha1، Rules 1.0.2-alpha1، AndroidTestOrchestrator 1.0.2-alpha1 (05-12-2017)

  • اسپرسو

    • Intents اکنون پاسخی قابل فراخوانی دارد که به آزمایش‌ها اجازه می‌دهد بعد از گرفتن یک هدف شلیک شده اما قبل از برگرداندن یک شی Instrumentation.ActivityResult اجرا شوند.
  • دونده

    • مانیتور maven artifact com.android.support.test:monitor:<version> را برای کاربرانی که بدون اجرای آزمایشی و ویژگی‌های JUnit MonitoringInstrumentation نیاز دارند تقسیم کنید.

      اگر از com.android.support.test:runner:<version> استفاده می کنید، همه چیز همانطور که انتظار می رود کار می کند، زیرا Gradle به طور خودکار ماژول monitor را به عنوان یک وابستگی به ماژول runner می کشد.

    • پرچم newRunListenerOrderMode اضافه شد. وقتی true ، شنوندگان تعریف شده توسط کاربر قبل از شنوندگان پیش فرض اجرا می شوند. (ما انتظار داریم که این رفتار در نهایت به حالت پیش فرض تبدیل شود.)

    • شماره 65828576 : TestRequestBuilder هنگام اجرای آزمایشات در کلاسی که با @Ignore مشروح شده است (مستقل بدون اجرای آزمایشی یا ویژگی‌های JUnit) از کار می‌افتد.

  • AndroidTestOrchestrator

    • اکنون آزمایش‌های خالی را مانند AndroidJUnitRunner غیر هماهنگ انجام می‌دهد.
    • Orchestrator اکنون می تواند خروجی استاندارد بسیار بزرگ AndroidJUnitRunner را مدیریت کند.

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

  • اسپرسو

    • یک گزینه IdlingPolicy برای سرکوب onTimeout() زمانی که یک step debugger به VM متصل است اضافه کرد.
    • مسائل 64024656 ، 64247586 و 64525881 : خرابی‌ها را برای بارگیری ناموفق کلاس گزارش نکنید، مگر اینکه کاربر کلاس‌های خاصی را با گنجاندن آرگومان اجراکننده کلاس -e بارگیری کند.
    • شماره 64877246 : کلاس های گمشده را به فایل JAR منابع اضافه کنید.
  • دونده

    • منطق ShardingFilter ساده شده.
    • شماره 65025743 : فیلتر @RequiresDevice اکنون از شبیه سازهای FTL پشتیبانی می کند.
  • AndroidTestOrchestrator

    • خرابی های گزارش را تکرار نکنید. هنگامی که یک فرآیند تست پس از شکست از کار می افتد، اکنون فقط یک شکست برای آزمایش گزارش می شود.
    • Javadoc برای ارکستراتور ثابت شد.
    • اکنون در صورت خرابی فرآیند از راه دور، آزمایش‌ها از دست رفته است.
    • اکنون موارد آزمایش نادیده گرفته شده را کنترل می کند.
    • اکنون موارد آزمایش نادیده گرفته شده را از پاورقی برای مطابقت با نتایج قدیمی حذف می کند.
    • رفع مشکلات مجوز زمان اجرا گزارش‌های آزمایش اکنون روی کارت SD در Android نسخه 7.0 (سطح API 24) و بالاتر نوشته می‌شوند.

Espresso 3.0.0، Runner 1.0.0، Rules 1.0.0، AndroidTestOrchestrator 1.0.0 (25-07-2017، اعلامیه )

شکستن تغییرات

  • تمام مصنوعات
    • کاهش پشتیبانی از سطوح API کمتر از 15 – با این حال، حداقل SDK همچنان به سطح 9 API اشاره می کند تا به کاربران زمان برای ارتقاء بدهد.
  • اسپرسو
    • کلاس منسوخ شده android.support.test.espresso.contrib.CountingIdlingResource حذف شده و به android.support.test.espresso.idling.CountingIdlingResource منتقل شده است.
    • Guava اکنون به یک فضای نام "داخلی" متفاوت منتقل شده است - اگر به طور تصادفی از Guava API از طریق فضاهای نام Espresso استفاده می کنید، ممکن است شکستگی ها را مشاهده کنید.
      • هرگونه ارجاع به گواوا سایه دار را حذف کنید ( .core.deps.guava. )
      • نسخه کتابخانه پشتیبانی خود را به 25.4.0 یا بالاتر ارتقا دهید

مسائل شناخته شده

  • AndroidTestOrchestrator
    • آرگومان های اجراکننده -e numShards و -e shardIndex در حال حاضر پشتیبانی نمی شوند
    • تست های پارامتری در حال حاضر پشتیبانی نمی شوند

ویژگی های جدید

  • دونده
    • InterceptingActivityFactory و SingleActivityFactory - امکان آزمایش یک فعالیت را به صورت جدا از دنیای بیرون با روش‌هایی مانند startService() و sendBroadcast() فراهم می‌کند.
    • برای استفاده از JUnitParams با AndroidJUnitRunner پشتیبانی اضافه کنید
    • مدیریت @UiThreadTest را در سطح اجرا کننده تست اصلی شروع کنید و @UiThreadTestRule را منسوخ کنید – این امکان استفاده از حاشیه نویسی @UiThreadTest را مستقیماً در روش های حاشیه نویسی شده با @Before و @After می کند.
    • حاشیه نویسی @SdkSupress اکنون از مقدار maxSdkVersion پشتیبانی می کند (نسخه 37067792 )
    • -e classLoader – امکان عبور از بارگذارهای کلاس را با استفاده از runner args فراهم می کند
    • -e filter – اضافه کردن پشتیبانی برای فیلترهای JUnit سفارشی که با استفاده از runner args مشخص شوند
    • -e runnerBuilder – به توسعه‌دهندگان اجازه می‌دهد تا پیاده‌سازی‌های خود را از RunnerBuilder ارائه دهند که می‌تواند تعیین کند که آیا و چگونه می‌توانند در برابر یک کلاس خاص اجرا شوند یا خیر.
  • قوانین
  • AndroidTestOrchestrator
    • Android Test Orchestrator روش جدیدی برای جمع آوری و اجرای تست ها با تاکید بر درستی و جداسازی ارائه می دهد. ارکستراتور یک فرآیند ساز مستقل است که برای هر آزمون یک فرآیند دونده ساز را ایجاد می کند و نتایج را جمع آوری می کند.
      • خرابی‌های برنامه، سازهای دونده را از بین می‌برند، اما نه ارکستراتور، و به مجموعه آزمایشی شما اجازه می‌دهد ادامه پیدا کند.
      • به نصب APK ارکستراتور نیاز دارد - 'com.android.support.test:orchestrator:1.0.0'
      • نسخه 1.0 فقط یک رابط خط فرمان دارد. ادغام با Android Studio و Firebase Test Labs برنامه ریزی شده است

رفع اشکال

  • اسپرسو
    • بهبود هماهنگ سازی نمای ریشه برای کاهش قابل توجه پوسته پوسته شدن
    • خرابی IdlingResourceRegistry را برطرف کنید
    • همگام سازی بهتر در برابر اشیاء IdlingResource
    • شماره 37132680 : اسپرسو قبل از انجام عمل بعدی منتظر نمی ماند تا ایجاد دیالوگ کامل شود.
    • شماره 37103280 : اسپرسو باید قوانین مصرف کننده ProGuard را ارسال کند تا مصرف کنندگان مجبور به اضافه کردن آنها نباشند
    • شماره 37094726 : Espresso Intents حاوی برچسب کاربردی غیر ضروری است
    • شماره 37093953 : اسپرسو: بررسی برای متن خطای پوچ/خالی موجود نیست
    • شماره 37071776 : espresso-core فایل های .pom گواوا را جاسازی می کند
    • شماره 37062612 : NPE در حال release()
    • شماره 37063389 : داشتن Guava و espresso-web به عنوان وابستگی androidTest کامپایل نمی شود
    • شماره 37070533 : پشتیبانی از NavigationView را در کتابخانه پشتیبانی طراحی اندروید اضافه کنید
  • دونده
    • رفع توانایی استفاده از @UiThreadTest در ترکیب با @Test(timeout = 123)
    • ثابت -e notClass runner arg
    • -e log ثابت برای پشتیبانی از مجموعه‌های آزمایشی JUnit3 و JUnit4، و همچنین رانرهای Parameterized و Enclosed
    • شماره 37663530 : قبل و بعد از هر روش تست منتظر بمانید تا تمام فعالیت ها به پایان برسد
    • شماره 37132680 : اسپرسو قبل از انجام عمل بعدی منتظر نمی ماند تا ایجاد دیالوگ کامل شود.
    • شماره 37123213 : @RequiresDevice در x86_64 ABI نادیده گرفته شد
    • شماره 37101485 : برخی از آرگومان های ارائه شده توسط مانیفست برای AndroidJUnitRunner - مانند اندازه آزمایش، حاشیه نویسی و اشکال زدایی - نادیده گرفته می شوند
    • شماره 37082857 : اجرای تست نیمه موازی اسپرسو بر روی اجسام ساکن ناموفق است.
    • شماره 37063396 : متن با ProviderTestCase2 مقداردهی اولیه نشده است (باعث NullPointerException می شود)
  • قوانین
  • UiAutomator
    • setUiAutomationFlags() برای استفاده با UiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES - این اجازه می دهد تا UiAutomator در زمانی که سایر سرویس های دسترسی در حال اجرا هستند استفاده شود.
    • شماره 37082813 : setText() در اشیاء خالی EditText اگر سطح API 19 یا کمتر باشد، NullPointerException پرتاب می کند.

سایر تغییرات قابل توجه

  • باینری ها اکنون از طریق Google Maven منتشر می شوند
  • کاهش اندازه فایل‌های JAR espresso-core و espresso-web – وابستگی‌های جاسازی شده اکنون ProGuard اعمال شده است
  • همه فایل‌های .aar اکنون شامل قوانین ProGuard می‌شوند
  • فایل های proguard_library.cfg را به مصنوعات منتشر شده اضافه کنید
  • رابط Tapper دارای نسخه جدیدی از sendTap() برای پیاده سازی است

کمک های خارجی

اسپرسو 2.2.2، Runner/Rules 0.5 (22/02/2016، انتشار بی‌صدا)

ویژگی های جدید

  • اسپرسو
    • شماره 194253 : پشتیبانی از NavigationView را در کتابخانه طراحی پشتیبانی اندروید اضافه کنید
    • بررسی هایی برای انیمیشن ها و انتقال های فعال اضافه شده است
    • API جدید ViewMatcher : withResourceName()

رفع اشکال

  • اسپرسو
    • شماره 195331 : هسته اسپرسو فایل های پوم گواوا را جاسازی می کند
    • منبع بیکار شمارش خارج از اسپرسو کمک کرد
  • قوانین
    • شماره 187249 : NPE در Intents.release()
  • دونده
    • شماره 196066: آرگومان -e log true در AndroidJUnitRunner تست واقعی را دور نمی زند
    • منتظر دیباگر در onCreate() runner باشید
    • تمام حاشیه نویسی تست پشتیبانی شده از پلتفرم و به ATSL منتقل شد
    • حذف ردیابی پشته در مورد هیچ JSBridge
    • AndroidAnnotatedBuilder رفع شد

سایر تغییرات قابل توجه

  • ActivityTestRule ، UiThreadTestRule ، IntentsTestRule و ServiceTestRule از نسخه بتا خارج شده اند
  • فایل تنظیمات سبک کد را برای قالب بندی کد یکنواخت اضافه کنید

اسپرسو 2.2.1، Runner/Rules 0.4 (2015-09-15)

ویژگی های جدید

  • قوانین
    • اضافه شدن سازنده جدید IntentsTestRule برای سازگاری کامل با ActivityTestRule
  • دونده
    • نصب multidex مورد ویژه برای سطوح API 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 view matcher را اضافه کنید
    • 157912 : برای تطبیق متن خطا در یک شی EditText ، view matcher را اضافه کنید
    • 150674 : برای کشوهایی با جاذبه دلخواه، پشتیبانی از DrawerActions اضافه کنید
    • 150744 : DrawerActions دیگر parentListener افشا نمی کند
    • 153303 : گرانش مشخص شده در چک های "کشو باز است یا بسته است"
    • 157910 : کارخانجات باز و بستن DrawerLayout اضافه کنید

رفع اشکال

  • اسپرسو
    • ViewActions.closeSoftKeyboard() اکنون تضمین می کند که صفحه کلید نرم به طور کامل از بین رفته است
    • رفع مشکل همگام‌سازی با روش Espresso.pressBack() Espresso در سطح API 21 و بالاتر
    • همگام سازی ثابت برای انیمیشن های بسته شدن صفحه کلید در سطح API 23
  • قوانین
    • ServiceTestRule در سطح API 23 ثابت شد، startService() همیشه باید با یک Intent صریح فراخوانی شود.
  • دونده
    • پشتیبانی gradle شکسته JaCoCo رفع شد
    • پشتیبانی از اشتراک گذاری تست شکسته ثابت شد
    • وضعیت ناسازگار در دونده آزمایشی پس از وقفه های زمانی آزمون سبک JUnit3 رفع شد

سایر تغییرات قابل توجه

  • اصلاحات جاوادوک و بهبود پیام خطا
  • متدهای suite() را نادیده بگیرید و هنگام استفاده از فیلترهای متد، خطاهای init را نادیده نگیرید

اسپرسو 2.2 / ATSL 0.3 (09-06-2015)

ویژگی های جدید

  • اسپرسو وب 2.2
    • پشتیبانی از WebView جدید
  • اسپرسو هسته 2.2
    • برای استفاده از dagger v2 مهاجرت کرد
    • برای استفاده از hamcrest نسخه 1.3 مهاجرت کرد
  • espresso-contrib 2.2
    • بررسی های دسترسی
    • پشتیبانی گرانشی DrawerActions
  • قوانین 0.3
    • DisableOnAndroidDebug قانون
  • دونده 0.3
    • از JUnit v4.10 به JUnit v4.12 ارتقا دهید
    • برای استفاده از Hamcrest نسخه 1.3 مهاجرت کرد

رفع اشکال

  • DrawerActions نشت ParentListener رفع شد
  • شکست فرضی اکنون به عنوان یک آزمون نادیده گرفته می شود تا یک آزمون شکست خورده
  • موارد فعالیت نشت MonitoringInstrumentation از طریق ExecutorService برطرف کرد
  • برای فعالیت های یتیم که در مرحله متوقف شده گیر کرده بودند، رفع شد
  • Until.scrollFinished() را به‌روزرسانی کنید تا اگر هیچ رویداد اسکرول ایجاد نشد، true را برگردانید. از 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 : یک API شبیه Mockito که با اجازه دادن به نویسندگان آزمون برای تأیید و نادیده گرفتن مقاصد خروجی، تست تعامل هرمتیک را ممکن می‌سازد.
    • IntentsTestRule : ActivityTestRule را گسترش می دهد، مقداردهی اولیه می کند و Espresso-Intent را در تست های رابط کاربری کاربردی منتشر می کند.
  • اسپرسو هسته
    • ViewActions : قابلیت اضافه شده برای اجرای ادعاهای جهانی قبل از اجرای اقدامات. این برای سایر فریمورک‌هایی که در بالای اسپرسو ساخته می‌شوند مفید است تا وضعیت سلسله‌مراتب نمایش را در زمانی که مجموعه آزمایشی اسپرسو موجود اجرا می‌شود، تأیید کند.
    • ViewMatchers.withContentDescription() resId اضافه بار
  • قوانین
    • ActivityTestRule : این قانون تست عملکردی یک فعالیت را ارائه می دهد
    • حاشیه نویسی UiThreadRule و UiThreadTest : این قانون به روش تست حاشیه نویسی شده با UiThreadTest اجازه می دهد تا روی رشته اصلی برنامه (یا رشته UI) اجرا شود.
    • ServiceTestRule : این قانون تست عملکردی یک سرویس را ارائه می دهد
  • دونده
    • ApplicationLifecycleCallback : برگشت به تماس برای نظارت بر رویدادهای چرخه عمر برنامه
    • همه آرگومان های runner اکنون می توانند در فایل مانیفست اندروید با استفاده از تگ <meta-data> نیز مشخص شوند.
  • اتوماتاتور UIA
    • UiDevice.dumpWindowHierarchy() اکنون می تواند یک File یا یک OutputStream بپذیرد

رفع اشکال

  • اسپرسو
    • اگر ستون پیدا نشد، تطبیق مکان‌نما اکنون false را برمی‌گرداند تا Hamcrest بتواند به مکان‌نمای بعدی ادامه دهد.
    • NullPointerException با PreferenceMatchers withTitle دیگر رخ نمی دهد
    • لغو ثبت منبع بیکار دیگر باعث نمی شود که اسپرسو فکر کند ما منابع بیکاری شلوغ داریم
    • نسخه به روز شده توضیحات پشتیبانی که توسط Espresso Contrib استفاده شده است
  • دونده
    • AndroidJUnit4 اکنون از آزمایشات با فرضیات ناموفق صرف نظر می کند
  • اتوماتاتور UIA
    • برای جلوگیری از StaleObjectException تماشاگران را اجرا کنید

سایر تغییرات قابل توجه

  • وقتی نمی‌توانیم متن را با رشته‌ای غیر لاتین تایپ کنیم، پیام خطای بهتری اضافه کنیم

UIAutomator 2.0 (12-03-2015)

UI Automator اکنون بر اساس Android Instrumentation ساخته شده است و می‌توانید با استفاده از دستور ./gradlew connectedCheck آزمایش‌ها را بسازید و اجرا کنید.

اسپرسو نسخه 2.0، تست رانر 0.1 (تاریخ انتشار: 19-12-2014)

شکستن تغییرات

  • اسپرسو به فضای نام جدیدی منتقل شده است، از 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 قرار دارد (همانطور که همیشه باید باشد)
  • اختیاری (وابستگی به گواوا) از API عمومی حذف شده است تا از بسته بندی مجدد وابستگی گواوا پشتیبانی کند و از برخورد 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 (تاریخ انتشار: 08/01/2014)

اسپرسو

  • swipeLeft و swipeRight ViewActions جدید
  • پشتیبانی از چند پنجره: یک ویژگی پیشرفته که امکان انتخاب پنجره مورد نظر را که اسپرسو باید بر روی آن عملیات را اجرا کند، می‌دهد.
  • بهبودهایی در TypeTextAction : به تایپ متن در نمای از پیش متمرکز شده اجازه می‌دهد، که اضافه کردن متن را آسان‌تر می‌کند.
  • رفع اشکالات متعدد

کتابخانه مشارکت اسپرسو

  • این کتابخانه جدید دارای ویژگی هایی است که مکمل اسپرسو هستند، اما بخشی از کتابخانه اصلی نیستند
  • DrawerActions جدید برای عملکرد در DrawerLayout : وابستگی به کتابخانه پشتیبانی اندروید دارد، بنابراین ما آن را خارج از کتابخانه اصلی Espresso نگه می داریم

تست های نمونه

  • این آزمایش‌ها برای زندگی در همان بسته برنامه آزمایشی تغییر مکان داده‌اند
  • Maven POM برای حذف گواوا تکراری رفع شده است، بنابراین mvn install باید اکنون کار کند