পরীক্ষা রিলিজ নোট সংরক্ষণাগার

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 টেস্ট 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, J1.1.0-beta01 Truth. 1.1.0-beta01 (2018-12-06)

  • মূল
    • নতুন কোর-কেটিএক্স কোটলিন এক্সটেনশন আর্টিফ্যাক্ট! একটি kotlin-বন্ধুত্বপূর্ণ ActivityScenario.launchActivity API অন্তর্ভুক্ত করে
    • কাস্টম অভিপ্রায় সহ ক্রিয়াকলাপ চালু করার জন্য নতুন ActivityScenario API
    • একটি কার্যকলাপ ফলাফল প্রাপ্তির জন্য নতুন ActivityScenario API
    • অ্যাক্টিভিটি সিনারিওকে ক্লোজযোগ্য করুন
  • এসপ্রেসো
    • API 28 সামঞ্জস্যপূর্ণ হতে ResourceNameMatcher এবং HumanReadables এর সাথে পরিবর্তন করুন।
    • stringToBeSet অন্তর্ভুক্ত করতে ReplaceTextAction-এর বিবরণ আপডেট করুন
    • রোবোলেক্ট্রিক পজড লুপার মোডে এসপ্রেসোকে সমর্থন করুন।
  • জুনিট
    • নতুন ActivityScenarioRule API, পরীক্ষা সেটআপ এবং টিয়ারডাউনে একটি কার্যকলাপ স্বয়ংক্রিয়-লঞ্চ এবং বন্ধ করার জন্য
    • নতুন জুনিট-কেটিএক্স কোটলিন এক্সটেনশন আর্টিফ্যাক্ট! একটি kotlin-বন্ধুত্বপূর্ণ ActivityScenarioRule API অন্তর্ভুক্ত করে
  • রানার
    • প্যাকেজ গ্রহণ করার সময় আচরণে -e প্যাকেজ এবং -e testFile কে সামঞ্জস্যপূর্ণ করুন
  • সত্য
    • bool, parcelable, এবং parcelableAsType BundleSubject API যোগ করুন

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 এর সাথে ঠিক করুন
    • Roboelectric এ Espresso ব্যবহার করার জন্য সমর্থন যোগ করুন
    • ইস্যু 72798625 : যখন textAllCaps সক্রিয় থাকে তখন Espresso ViewMatchers.withText কাজ করে না
    • গতি ঘটনা একটি ক্রম ইনজেকশন জন্য সমর্থন যোগ করুন
  • অভিপ্রায়
    • উদ্দেশ্যগুলির তালিকা পুনরুদ্ধারের জন্য বিটা 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
    • 'কভারেজ' এবং 'কভারেজফাইলপাথ' উভয় আর্গুমেন্ট পাস হলেই শুধুমাত্র অর্কেস্ট্রেটর কভারেজ হ্যান্ডলিং সক্ষম করুন৷
    • শুধুমাত্র ডিবাগারের জন্য অপেক্ষা করুন যখন -debug সেট করা হয় কিন্তু ATO পরীক্ষার ক্ষেত্রে তালিকাভুক্ত করার জন্য নয়। অর্কেস্ট্রেটর নিজেই ডিবাগ করার জন্য একটি নতুন অর্কেস্ট্রেটর ডিবাগ পতাকা যোগ করা হয়েছে৷
  • মূল
    • নতুন নিদর্শন! নতুন APIগুলি অন্তর্ভুক্ত করে যা স্থানীয় এবং অন-ডিভাইস উভয় পরীক্ষাকে সমর্থন করে:
      • প্রসঙ্গ পুনরুদ্ধার করা হচ্ছে: ApplicationProvider
      • কার্যকলাপ জীবনচক্র নিয়ন্ত্রণ: কার্যকলাপ দৃশ্যকল্প (বিটা)
      • MotionEvent, PackageInfo-এর জন্য নির্মাতা
      • পারসেবল ইউটিলিটি ক্লাস
  • সত্য
    • নতুন নিদর্শন! বিজ্ঞপ্তি, অভিপ্রায়, বান্ডেল, পার্সেলেবল এবং মোশন ইভেন্টের জন্য কাস্টম সত্য বিষয় অন্তর্ভুক্ত
  • জুনিট
    • নতুন নিদর্শন! JUnit রানার ক্লাস 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- এ আমাদের নজরে আনা হয়েছিল যে আমরা আমাদের পাবলিক API-এ Guava Optional ব্যবহার করছি। এটি আমাদের পক্ষ থেকে ভয়ানক তদারকি ছিল। ফলস্বরূপ, এই সমস্যাটি সমাধান করার জন্য এই রিলিজে একটি ব্রেকিং পাবলিক API পরিবর্তন রয়েছে। আমরা গুয়াভা অপশনাল ক্লাসের চারপাশে একটি কুৎসিত মোড়ক চালু করেছি, যার নাম EspressoOptional যা "android.support.test.espresso.util" নামস্থানের অধীনে থাকে। যে ডেভেলপাররা ফাঁস হওয়া Guava Optional API ব্যবহার করছেন তাদের এই নতুন সংস্করণের আপডেটের সময় EspressoOptional ব্যবহার করার জন্য তাদের আমদানি এবং রেফারেন্স পরিবর্তন করতে হবে। এই কারণে হতে পারে অসুবিধার জন্য দুঃখিত.
    • onView() এবং onData() APIগুলি এখন ত্রুটিগুলি প্রতিরোধ করতে @CheckReturnValue চিহ্নিত করা হয়েছে
    • স্থির এসপ্রেসো-কোর POM ফাইল যাতে "নিয়ম" নির্ভরতা না টানতে পারে, তার পরিবর্তে এসপ্রেসো-উদ্দেশ্য POM এটিকে টেনে আনে। এটি ডেভেলপারদের জন্য একটি NoOp পরিবর্তন হওয়া উচিত কারণ espresso-intents espresso-core ছাড়া ব্যবহার করা যাবে না।
    • ইস্যু 65486414 : Espresso অনুপস্থিত পেয়ারা নির্ভরতা
    • ইস্যু 65576174 : Espresso IdlingResourceRegistry.sync দ্বিতীয় পরীক্ষায় ব্যর্থতার কারণ
    • ইস্যু 65568629 : Espresso.onIdle IdlingRegistry ব্যবহার করছে না
    • ইস্যু 69333598 : অ্যান্ড্রয়েড লাইব্রেরি মডিউলে প্লে-সার্ভিস-অথ:11.6.0 এর সাথে এসপ্রেসো 3.0.1 বেমানান।
    • ইস্যু 64062890 : অভ্যন্তরীণ ঐচ্ছিক প্রকার অ্যাডাপ্টারভিউপ্রোটোকল ইন্টারফেস দ্বারা উন্মুক্ত
    • ইস্যু 64091847 : এসপ্রেসো 3.0.0 টেস্ট রানারের উপর নির্ভর করা উচিত নয়
    • ইস্যু 73722050 : espresso-contrib 3.0.2-alpha1 প্যাকেজ android.arch.{lifecycle/core} ক্লাস
  • এসপ্রেসো-রিমোট
    • এটি একটি একেবারে নতুন নিদর্শন. আমরা এসপ্রেসো-কোর আর্টিফ্যাক্টের বাইরে এসপ্রেসোর সমস্ত মাল্টি প্রসেস কার্যকারিতা ডিকপল করেছি। এটি পরিষ্কার এবং এসপ্রেসো-কোরের সামগ্রিক আকার এবং পদ্ধতির সংখ্যা উল্লেখযোগ্যভাবে হ্রাস করা উচিত।
  • রানার
    • বাইন্ডার লেনদেনের জন্য খুব বড় হলে স্ট্যাক ট্রেস ছেঁটে দিন। যেহেতু AJUR-কে একটি বাইন্ডার IPC-এর মাধ্যমে AM-এ ব্যর্থতার রিপোর্ট করতে হবে, তাই আমাদের নিশ্চিত করতে হবে যে আমরা বাইন্ডার লেনদেনের সীমা অতিক্রম করব না - যা প্রতি প্রক্রিয়ায় 1MB।
    • ইস্যু 65828576 : @Ignore দিয়ে ক্লাসে পরীক্ষা চালানোর সময় TestRequestBuilder ক্র্যাশ
    • ইস্যু 37057596 : আমরা @BeforeClass-এ ব্যর্থতাগুলি পরিচালনা করি না
  • নিয়ম
    • জীবনচক্র পরিবর্তনের পরে পরীক্ষার অধীনে কার্যকলাপের একটি রেফারেন্স প্রকাশ নিশ্চিত করুন। পরীক্ষার সময়কালে কেউ এখন সরাসরি #getActivity() থেকে প্রাপ্ত রেফারেন্স ব্যবহার করে কার্যকলাপটি পরিচালনা করতে সক্ষম হয় যদি কার্যকলাপটি শেষ হয়ে যায় এবং পুনরায় চালু করা হয়, তাহলে #getActivity() দ্বারা প্রত্যাবর্তিত রেফারেন্সটি এখন সর্বদা কার্যকলাপের বর্তমান উদাহরণের দিকে নির্দেশ করে .
    • ইস্যু 64389280 : গ্রান্ট পারমিশন রুল WRITE_EXTERNAL_STORAGE প্রদান করে না
    • ইস্যু 37065965 : অ্যাক্টিভিটি টেস্ট রুল ওরিয়েন্টেশন পরিবর্তনের পরে অ্যাক্টিভিটি ফাঁস করে
    • ইস্যু 75254050 : ActivityTestRule কনফিগারেশন পরিবর্তনের সময় কার্যকলাপের উদাহরণ আপডেট করে না
    • ইস্যু 64464625 : কার্যকলাপের মেথড ফিনিশ() এ UI কাজ করা যাবে না
  • AndroidTestOrchestrator
    • Pass -e coverage true -e coverageFilePath /sdcard/foo/ প্রদত্ত অবস্থানে কভারেজ ফাইল তৈরি করতে পতাকা (অ্যাপটিকে প্রদত্ত অবস্থানে লেখার অনুমতি থাকতে হবে)। কভারেজ ফাইলের নামকরণ কনভেনশনটি এখন এইরকম দেখাচ্ছে com.foo.Class#method1.ec । দ্রষ্টব্য, এটি শুধুমাত্র বিচ্ছিন্ন মোডে চলাকালীন সমর্থিত। এছাড়াও, এটি AndroidJUnitRunner এর coverageFile পতাকার সাথে একসাথে ব্যবহার করা যাবে না। যেহেতু উত্পন্ন কভারেজ ফাইল একে অপরকে ওভাররাইট করে।
    • পাস -e clearPackageData ফ্ল্যাগ যদি আপনি চান যে অর্কেস্ট্রেটর pm clear context.getPackageName() এবং pm clear targetContext.getPackageName() পরীক্ষার আমন্ত্রণের মধ্যে কমান্ড চালাতে। দ্রষ্টব্য, স্পষ্ট কমান্ডের প্রসঙ্গটি পরীক্ষার প্রসঙ্গের অধীনে অ্যাপ।
    • স্থির - একটি খালি পরীক্ষা চালানোর সময়, ওরফে। টার্গেটের ভিতরে @Test নেই, পরীক্ষার ফলাফল উত্তরাধিকার মোড থেকে আলাদা।
    • ইস্যু 72758547 : টেস্ট অর্কেস্ট্রেটরের কারণে জ্যাকোকো কভারেজ ডেটা অসম্পূর্ণ, শুধুমাত্র শেষ পরীক্ষা চালানোর ডেটা রয়েছে
    • ইস্যু 67916042 : অ্যান্ড্রয়েড টেস্ট অর্কেস্ট্রেটর: আউটঅফ মেমোরির কারণে প্রসেস ক্র্যাশ হলে এক্সিকিউশন বন্ধ হয়ে গেছে
    • ইস্যু 77752735 : TransactionTooLargeException এর জন্য অর্কেস্ট্রেটর ক্র্যাশ
    • ইস্যু 77549481 : টেস্ট অর্কেস্ট্রেটর প্রতিটি পরীক্ষার পরে "পিএম ক্লিয়ার" চালানো উচিত

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

  • এসপ্রেসো

    • Intents এখন একটি কলযোগ্য প্রতিক্রিয়া আছে, একটি বহিষ্কৃত অভিপ্রায় ক্যাপচার করার পরে কিন্তু একটি Instrumentation.ActivityResult অবজেক্ট ফেরত দেওয়ার আগে পরীক্ষাগুলি চালানোর অনুমতি দেয়।
  • রানার

    • মনিটর মাভেন আর্টিফ্যাক্ট com.android.support.test:monitor:<version> বিভক্ত করুন, যাদের পরীক্ষা চালানো এবং JUnit বৈশিষ্ট্য ছাড়াই MonitoringInstrumentation প্রয়োজন।

      আপনি যদি com.android.support.test:runner:<version> ব্যবহার করেন, সবকিছু প্রত্যাশিতভাবে কাজ করে, কারণ Gradle স্বয়ংক্রিয়ভাবে monitor মডিউলটি runner মডিউলের নির্ভরতা হিসেবে টেনে নেয়।

    • যোগ করা হয়েছে পতাকা newRunListenerOrderMode . true হলে, ব্যবহারকারী-সংজ্ঞায়িত শ্রোতারা ডিফল্ট শ্রোতাদের আগে চলে। (আমরা আশা করি এই আচরণটি শেষ পর্যন্ত ডিফল্ট হয়ে যাবে।)

    • ইস্যু 65828576 : @Ignore (পরীক্ষা চালানো বা JUnit বৈশিষ্ট্য ছাড়াই স্বতন্ত্র) একটি ক্লাসে পরীক্ষা চালানোর সময় TestRequestBuilder ক্র্যাশ হয়।

  • AndroidTestOrchestrator

    • এখন নন-অর্কেস্ট্রেটেড AndroidJUnitRunner এর মতো খালি পরীক্ষাগুলি পরিচালনা করে।
    • অর্কেস্ট্রেটর এখন AndroidJUnitRunner থেকে খুব বড় স্ট্যান্ডার্ড আউটপুট পরিচালনা করতে পারে।

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

  • এসপ্রেসো

    • VM-এর সাথে একটি স্টেপ ডিবাগার সংযুক্ত হলে onTimeout() দমন করার জন্য একটি IdlingPolicy বিকল্প যোগ করা হয়েছে।
    • ইস্যু 64024656 , 64247586 , এবং 64525881 : অসফল ক্লাস লোডিংয়ের জন্য ব্যর্থতার রিপোর্ট করবেন না যদি না কোনো ব্যবহারকারী -e ক্লাস রানার আর্গুমেন্ট অন্তর্ভুক্ত করে নির্দিষ্ট ক্লাস লোড করছে।
    • ইস্যু 64877246 : উৎস JAR ফাইলে অনুপস্থিত ক্লাস যোগ করুন।
  • রানার

    • সরলীকৃত ShardingFilter যুক্তি.
    • ইস্যু 65025743 : @RequiresDevice ফিল্টার এখন FTL এমুলেটর সমর্থন করে।
  • AndroidTestOrchestrator

    • রিপোর্ট ব্যর্থতা নকল করবেন না. যখন একটি পরীক্ষা প্রক্রিয়া ব্যর্থ হওয়ার পরে ক্র্যাশ হয়, এখন পরীক্ষার জন্য শুধুমাত্র একটি ব্যর্থতার রিপোর্ট করা হয়।
    • অর্কেস্ট্রেটরের জন্য স্থির জাভাডোক।
    • দূরবর্তী প্রক্রিয়া ক্র্যাশ হলে পরীক্ষাগুলি এখন মিস হিসাবে নির্দেশিত।
    • এখন উপেক্ষিত পরীক্ষার কেস পরিচালনা করে।
    • এখন ফুটার থেকে লিগ্যাসি ফলাফলের সাথে মেলে উপেক্ষা করা পরীক্ষার কেসগুলি বাদ দেয়৷
    • স্থির রানটাইম অনুমতি সমস্যা. পরীক্ষার রিপোর্টগুলি এখন Android 7.0 (API স্তর 24) এবং উচ্চতর SD কার্ডে লেখা হয়৷

Espresso 3.0.0, Runner 1.0.0, Rules 1.0.0, AndroidTestOrchestrator 1.0.0 (2017-07-25, ঘোষণা )

ব্রেকিং পরিবর্তন

  • সমস্ত নিদর্শন
    • 15-এর থেকে কম API স্তরগুলির জন্য সমর্থন বাদ দেওয়া হচ্ছে - তবে, সর্বনিম্ন SDK এখনও ব্যবহারকারীদের আপগ্রেড করার জন্য সময় দিতে API স্তর 9-এ নির্দেশ করে
  • এসপ্রেসো
    • বন্ধ করা android.support.test.espresso.contrib.CountingIdlingResource ক্লাসটি মুছে ফেলা হয়েছে এবং android.support.test.espresso.idling.CountingIdlingResource এ সরানো হয়েছে
    • পেয়ারা এখন একটি ভিন্ন "অভ্যন্তরীণ" নামস্থানে চলে গেছে - যদি আপনি দুর্ঘটনাক্রমে Espresso নামস্থানের মাধ্যমে Guava API ব্যবহার করেন, তাহলে আপনি ভাঙা দেখতে পারেন
      • ছায়াযুক্ত পেয়ারা ( .core.deps.guava. ) এর কোনো রেফারেন্স সরান
      • আপনার সমর্থন লাইব্রেরি সংস্করণ 25.4.0 বা উচ্চতর আপগ্রেড করুন

জ্ঞাত সমস্যা

নতুন বৈশিষ্ট

  • এসপ্রেসো
    • espresso-core এবং espresso-web জন্য API 26-এ নতুন মাল্টিপ্রসেস এসপ্রেসো সমর্থন, কিন্তু espresso-contrib নয়
    • নতুন লাইটওয়েট IdlingRegistry API
    • Executors বিরুদ্ধে সিঙ্ক্রোনাইজ করতে সাহায্য করার জন্য নতুন API
    • নেটওয়ার্ক অনুরোধ এবং প্রতিক্রিয়াগুলির বিরুদ্ধে সিঙ্ক্রোনাইজ করতে সাহায্য করার জন্য নতুন API।
      • নতুন ম্যাভেন আর্টিফ্যাক্ট: com.android.support.test.espresso.idling:idling-net:3.0.0
      • UriIdlingResource ক্লাস রয়েছে
    • নতুন espresso-core ভিউ ম্যাচার:
      • hasBackground() একটি View অবজেক্টের ব্যাকগ্রাউন্ড অঙ্কনযোগ্য সম্পদের সাথে মেলে
      • hasTextColor() একটি TextView অবজেক্টের রঙের সাথে মেলে
    • নতুন ভিউ অ্যাকশন পদ্ধতি:
      • ListView এর বংশধরদের সাথে কাজ করার জন্য উন্নত scrollTo() ভিউ অ্যাকশন
      • repeatedlyUntil() - একটি ভিউতে প্রদত্ত ViewAction সম্পাদন করে যতক্ষণ না ভিউটি পছন্দসই ViewMatchers সাথে মেলে
    • নতুন এসপ্রেসো পদ্ধতি:
      • pressBackUnconditionally()pressBack() এর মতই কিন্তু Espresso নেভিগেট করার সময় ব্যতিক্রম করে না
      • noActivity() - একটি ViewAction বা ViewAssertion করার আগে একটি কার্যকলাপের জন্য অপেক্ষা করার প্রয়োজনীয়তা দূর করে
      • onIdle() - অ্যাপটি নিষ্ক্রিয় না হওয়া পর্যন্ত মূল থ্রেডটি লুপ করে
      • onIdle(Callable<T>)onIdle() এর মতই, কিন্তু প্যারামিটার হিসাবে একটি অতিরিক্ত Callable নেয়, যা অ্যাপটি নিষ্ক্রিয় হয়ে যাওয়ার পরে কার্যকর করা হয়
    • webScrollIntoView() - নতুন espresso-web পরমাণু যা আপনাকে WebView ভিতরে স্ক্রোল করতে দেয়
  • রানার
    • InterceptingActivityFactory এবং SingleActivityFactory - startService() এবং sendBroadcast() এর মতো পদ্ধতিগুলিকে ওভাররাইড করে বাইরের জগত থেকে বিচ্ছিন্নভাবে একটি কার্যকলাপ পরীক্ষা করার একটি সুবিধা প্রদান করে।
    • AndroidJUnitRunner এর সাথে JUnitParams ব্যবহার করার জন্য সমর্থন যোগ করুন
    • কোর টেস্ট রানার লেভেলে @UiThreadTest পরিচালনা করা শুরু করুন এবং @UiThreadTestRule বর্জন করুন – এটি @Before এবং @After এর সাথে টীকা করা পদ্ধতিতে সরাসরি @UiThreadTest টীকা ব্যবহার করতে সক্ষম করে।
    • @SdkSupress টীকা এখন maxSdkVersion মান সমর্থন করে (ইস্যু 37067792 )
    • -e classLoader - রানার আর্গস ব্যবহার করে ক্লাস লোডার পাস করার ক্ষমতা প্রদান করুন
    • -e filter - রানার আর্গস ব্যবহার করে নির্দিষ্ট করা কাস্টম JUnit ফিল্টারগুলির জন্য সমর্থন যোগ করুন
    • -e runnerBuilder - ডেভেলপারদের RunnerBuilder নিজস্ব বাস্তবায়ন প্রদান করার অনুমতি দেয় যা নির্ধারণ করতে পারে যে তারা একটি নির্দিষ্ট শ্রেণীর বিরুদ্ধে চালাতে পারে কিনা
  • নিয়ম
  • AndroidTestOrchestrator
    • অ্যান্ড্রয়েড টেস্ট অর্কেস্ট্রেটর সঠিকতা এবং বিচ্ছিন্নতার উপর জোর দিয়ে পরীক্ষা সংগ্রহ এবং চালানোর একটি নতুন উপায় প্রদান করে। অর্কেস্ট্রেটর হল একটি স্বাধীন ইন্সট্রুমেন্টেশন প্রক্রিয়া, প্রতিটি পরীক্ষার জন্য একটি ইন্সট্রুমেন্টেশন রানার প্রক্রিয়া তৈরি করে এবং ফলাফল সংগ্রহ করে।
      • অ্যাপ্লিকেশন ক্র্যাশ রানার ইন্সট্রুমেন্টেশনকে সরিয়ে দেয় কিন্তু অর্কেস্ট্রেটর নয়, আপনার টেস্ট স্যুটকে চালিয়ে যেতে দেয়
      • অর্কেস্ট্রেটর APK-এর ইনস্টলেশন প্রয়োজন - 'com.android.support.test:orchestrator:1.0.0'
      • সংস্করণ 1.0 শুধুমাত্র একটি কমান্ড লাইন ইন্টারফেস আছে; অ্যান্ড্রয়েড স্টুডিও এবং ফায়ারবেস টেস্ট ল্যাবগুলির সাথে একীকরণের পরিকল্পনা করা হয়েছে৷

বাগ ফিক্স

  • এসপ্রেসো
    • উল্লেখযোগ্যভাবে flakiness কমাতে উন্নত রুট ভিউ সিঙ্ক্রোনাইজেশন
    • IdlingResourceRegistry এর দুর্নীতি ঠিক করুন
    • IdlingResource অবজেক্টের বিরুদ্ধে আরও ভাল সিঙ্ক্রোনাইজেশন
    • ইস্যু 37132680 : এসপ্রেসো পরবর্তী ক্রিয়া সম্পাদন করার আগে ডায়ালগ তৈরি সম্পূর্ণ হওয়ার জন্য অপেক্ষা করে না
    • ইস্যু 37103280 : এসপ্রেসোকে প্রোগার্ড ভোক্তা বিধিগুলি পাঠানো উচিত যাতে ভোক্তাদের সেগুলি যুক্ত করার প্রয়োজন হয় না
    • ইস্যু 37094726 : এসপ্রেসো ইন্টেন্টে অপ্রয়োজনীয় অ্যাপ্লিকেশন লেবেল রয়েছে
    • ইস্যু 37093953 : এসপ্রেসো: নাল/খালি ত্রুটি পাঠ্যের জন্য কোন উপলব্ধ চেক নেই
    • ইস্যু 37071776 : espresso-core পেয়ারার .pom ফাইল এম্বেড করে
    • ইস্যু 37062612 : এনপিই release()
    • ইস্যু 37063389 : androidTest নির্ভরতা হিসাবে পেয়ারা এবং espresso-web থাকা কম্পাইল হয় না
    • ইস্যু 37070533 : অ্যান্ড্রয়েড ডিজাইন সাপোর্ট লাইব্রেরিতে NavigationView এর জন্য সমর্থন যোগ করুন
  • রানার
    • @Test(timeout = 123) এর সাথে একত্রে @UiThreadTest ব্যবহার করার ক্ষমতা ঠিক করুন
    • স্থির -e notClass রানার আর্গ
    • JUnit3 এবং JUnit4 টেস্ট স্যুট, সেইসাথে Parameterized এবং Enclosed রানার সমর্থন করার জন্য ফিক্সড -e log
    • ইস্যু 37663530 : প্রতিটি পরীক্ষা পদ্ধতির আগে এবং পরে সমস্ত কার্যক্রম শেষ হওয়ার জন্য অপেক্ষা করুন
    • ইস্যু 37132680 : এসপ্রেসো পরবর্তী ক্রিয়া সম্পাদন করার আগে ডায়ালগ তৈরি সম্পূর্ণ হওয়ার জন্য অপেক্ষা করে না
    • ইস্যু 37123213 : @RequiresDevice x86_64 ABI এ উপেক্ষা করা হয়েছে
    • ইস্যু 37101485 : AndroidJUnitRunner এর জন্য কিছু ম্যানিফেস্ট-প্রদত্ত আর্গুমেন্ট — যেমন পরীক্ষার আকার, টীকা এবং ডিবাগ — উপেক্ষা করা হয়
    • ইস্যু 37082857 : এসপ্রেসো সেমি-প্যারালাল টেস্ট এক্সিকিউশন স্থির বস্তুতে ব্যর্থ হয়
    • ইস্যু 37063396 : ProviderTestCase2 এর সাথে কনটেক্সট আরম্ভ করা হয়নি ( NullPointerException কারণ)
  • নিয়ম
  • UiAutomator
    • UiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES এর সাথে ব্যবহারের জন্য সেট UiAutomator setUiAutomationFlags()
    • ইস্যু 37082813 : খালি EditText অবজেক্টে setText() এপিআই লেভেল 19 বা তার কম হলে NullPointerException নিক্ষেপ করে

অন্যান্য উল্লেখযোগ্য পরিবর্তন

  • বাইনারি এখন Google Maven এর মাধ্যমে প্রকাশিত হয়
  • espresso-core এবং espresso-web JAR ফাইলগুলির আকার হ্রাস - এমবেডেড নির্ভরতা এখন প্রোগার্ড প্রয়োগ করা হয়েছে
  • সমস্ত .aar ফাইল এখন ProGuard নিয়ম অন্তর্ভুক্ত করে
  • মুক্তিপ্রাপ্ত শিল্পকর্মে proguard_library.cfg ফাইল যোগ করুন
  • Tapper ইন্টারফেস বাস্তবায়নের জন্য sendTap() এর একটি নতুন সংস্করণ রয়েছে

বাহ্যিক অবদান

এসপ্রেসো 2.2.2, রানার/নিয়ম 0.5 (2016-02-22, নীরব প্রকাশ)

নতুন বৈশিষ্ট

  • এসপ্রেসো
    • ইস্যু 194253 : অ্যান্ড্রয়েড সমর্থন ডিজাইন লাইব্রেরিতে নেভিগেশন ভিউ-এর জন্য সমর্থন যোগ করুন
    • সক্রিয় অ্যানিমেশন এবং ট্রানজিশনের জন্য চেক যোগ করা হয়েছে
    • নতুন ViewMatcher API: withResourceName()

বাগ ফিক্স

  • এসপ্রেসো
    • ইস্যু 195331 : এসপ্রেসো-কোর পেয়ারার পোম ফাইল এম্বেড করে
    • এসপ্রেসো-অবদানের বাইরে গণনা নিষ্ক্রিয় সম্পদ সরানো হয়েছে
  • নিয়ম
    • ইস্যু 187249 : Intents.release() এ NPE
  • রানার
    • ইস্যু 196066: AndroidJUnitRunner-e log true যুক্তি প্রকৃত পরীক্ষাকে বাইপাস করে না
    • রানার onCreate() এ ডিবাগারের জন্য অপেক্ষা করুন
    • সমস্ত সমর্থিত পরীক্ষার টীকা প্ল্যাটফর্মের বাইরে এবং ATSL-এ সরানো হয়েছে৷
    • কোন JSBbridge সম্পর্কে স্ট্যাক ট্রেস ডাম্প সরানো হয়েছে
    • স্থির AndroidAnnotatedBuilder

অন্যান্য উল্লেখযোগ্য পরিবর্তন

  • ActivityTestRule , UiThreadTestRule , IntentsTestRule এবং ServiceTestRule বিটার বাইরে
  • ইউনিফর্ম কোড ফরম্যাটিং এর জন্য কোড স্টাইল সেটিংস ফাইল যোগ করুন

এসপ্রেসো 2.2.1, রানার/নিয়ম 0.4 (2015-09-15)

নতুন বৈশিষ্ট

  • নিয়ম
    • ActivityTestRule এর সাথে সম্পূর্ণ সামঞ্জস্যপূর্ণ হতে নতুন IntentsTestRule কনস্ট্রাক্টর যোগ করা হয়েছে
  • রানার
    • 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 অবজেক্টে ইনপুট টাইপের জন্য ভিউ ম্যাচার যোগ করুন
    • 157912 : একটি EditText অবজেক্টে ত্রুটি টেক্সট মেলানোর জন্য ভিউ ম্যাচার যোগ করুন
    • 150674 : নির্বিচারে মাধ্যাকর্ষণ সহ ড্রয়ারের জন্য DrawerActions সমর্থন যোগ করুন
    • 150744 : DrawerActions আর parentListener লিক করে না
    • 153303 : "ড্রয়ার খোলা বা বন্ধ" চেকগুলিতে মাধ্যাকর্ষণ নির্দিষ্ট করা হয়েছে
    • 157910 : DrawerLayout খোলা এবং বন্ধ অ্যাকশন কারখানা যোগ করুন

বাগ ফিক্স

  • এসপ্রেসো
    • ViewActions.closeSoftKeyboard() এখন নিশ্চিত করে যে নরম কীবোর্ড সম্পূর্ণরূপে চলে গেছে
    • এপিআই লেভেল 21 এবং উচ্চতর এস্প্রেসোর Espresso.pressBack() পদ্ধতির সাথে সিঙ্ক্রোনাইজেশন সমস্যা সমাধান করা হয়েছে
    • API স্তর 23-এ কীবোর্ড ক্লোজার অ্যানিমেশনের জন্য স্থির সিঙ্ক্রোনাইজেশন
  • নিয়ম
    • API লেভেল 23-এ ফিক্সড ServiceTestRule , startService() সর্বদা একটি স্পষ্ট Intent সহ কল ​​করতে হবে
  • রানার
    • স্থির ভাঙা গ্রেডল JaCoCo সমর্থন
    • স্থির ভাঙা পরীক্ষা শার্ডিং সমর্থন
    • JUnit3 শৈলী পরীক্ষার টাইমআউটের পরে টেস্ট রানারে স্থির অসামঞ্জস্যপূর্ণ অবস্থা

অন্যান্য উল্লেখযোগ্য পরিবর্তন

  • Javadoc সংশোধন এবং ত্রুটি বার্তা উন্নতি
  • suite() পদ্ধতি উপেক্ষা করুন এবং পদ্ধতি ফিল্টার ব্যবহার করার সময় init ত্রুটিগুলি উপেক্ষা করবেন না

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

নতুন বৈশিষ্ট

  • এসপ্রেসো-ওয়েব 2.2
    • নতুন WebView সমর্থন
  • এসপ্রেসো-কোর 2.2
    • ড্যাগার v2 ব্যবহার করতে স্থানান্তরিত হয়েছে
    • হ্যামক্রেস্ট v1.3 ব্যবহার করতে স্থানান্তরিত হয়েছে
  • এসপ্রেসো-অবদান 2.2
    • অ্যাক্সেসিবিলিটি চেক
    • DrawerActions মাধ্যাকর্ষণ সমর্থন
  • নিয়ম 0.3
    • OnAndroidDebug নিয়ম DisableOnAndroidDebug
  • রানার 0.3
    • JUnit v4.10 থেকে JUnit v4.12 এ আপগ্রেড করুন
    • হ্যামক্রেস্ট v1.3 ব্যবহার করতে স্থানান্তরিত হয়েছে

বাগ ফিক্স

  • ফিক্সড DrawerActions ParentListener ফাঁস করছে
  • অনুমান ব্যর্থতা এখন একটি ব্যর্থ পরীক্ষার পরিবর্তে একটি উপেক্ষা পরীক্ষা হিসাবে বিবেচিত হয়
  • ExecutorService মাধ্যমে ফিক্সড MonitoringInstrumentation ফাঁস কার্যকলাপের উদাহরণ
  • স্থগিত পর্যায়ে আটকে থাকা এতিম কার্যক্রমের জন্য স্থির করা হয়েছে
  • Until.scrollFinished() আপডেট করুন সত্যে ফিরে আসতে যদি কোনো স্ক্রোল ইভেন্ট তৈরি না হয়। UiObject2#setText() এ সম্ভাব্য NPE থেকে রক্ষা করুন।

এসপ্রেসো 2.1, টেস্ট রানার/নিয়ম 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-এর মতো API যা পরীক্ষার লেখকদের যাচাই করতে এবং বহির্গামী অভিপ্রায় স্টাব করার অনুমতি দিয়ে হারমেটিক ইন্টার-অ্যাক্টিভিটি টেস্টিং সক্ষম করে।
    • IntentsTestRule : ActivityTestRule প্রসারিত করে, আরম্ভ করে এবং কার্যকরী UI পরীক্ষায় Espresso-Intents প্রকাশ করে
  • এসপ্রেসো-কোর
    • ViewActions : চলমান অ্যাকশনের আগে বিশ্বব্যাপী দাবী চালানোর ক্ষমতা যোগ করা হয়েছে। বিদ্যমান এসপ্রেসো টেস্ট স্যুট কার্যকর করার সময় ভিউ হায়ারার্কির অবস্থা যাচাই করতে এসপ্রেসোর উপরে তৈরি করা অন্যান্য ফ্রেমওয়ার্কের জন্য এটি কার্যকর।
    • ViewMatchers.withContentDescription() resId ওভারলোড
  • নিয়ম
    • ActivityTestRule : এই নিয়মটি একটি একক কার্যকলাপের কার্যকরী পরীক্ষা প্রদান করে
    • UiThreadRule এবং UiThreadTest টীকা: এই নিয়মটি UiThreadTest এর সাথে টীকা করা পরীক্ষা পদ্ধতিকে অ্যাপ্লিকেশনের প্রধান থ্রেডে (বা UI থ্রেড) চালানোর অনুমতি দেয়
    • ServiceTestRule : এই নিয়মটি একটি পরিষেবার কার্যকরী পরীক্ষা প্রদান করে
  • রানার
    • ApplicationLifecycleCallback : অ্যাপ্লিকেশন লাইফসাইকেল ইভেন্টগুলি পর্যবেক্ষণের জন্য কলব্যাক৷
    • সমস্ত রানার আর্গুমেন্ট এখন একটি <meta-data> ট্যাগ ব্যবহার করে অ্যান্ড্রয়েড ম্যানিফেস্ট ফাইলে নির্দিষ্ট করা যেতে পারে
  • UIA অটোমেটর
    • UiDevice.dumpWindowHierarchy() এখন একটি File বা একটি OutputStream গ্রহণ করতে পারে

বাগ ফিক্স

  • এসপ্রেসো
    • কলামটি না পাওয়া গেলে কার্সার ম্যাচার এখন false ফেরত দেয় যাতে হ্যামক্রেস্ট পরবর্তী কার্সারে যেতে পারে
    • withTitle PreferenceMatchers সহ NullPointerException আর ঘটবে না
    • নিষ্ক্রিয় সংস্থান নিবন্ধন না করার ফলে এসপ্রেসো আর মনে করে না যে আমাদের অলস সংস্থানগুলি ব্যস্ত রয়েছে
    • এসপ্রেসো কন্ট্রিব দ্বারা ব্যবহৃত আপডেট করা সমর্থন টীকা সংস্করণ
  • রানার
    • AndroidJUnit4 এখন ব্যর্থ অনুমান সহ পরীক্ষাগুলি এড়িয়ে যায়৷
  • UIA অটোমেটর
    • StaleObjectException প্রতিরোধ করতে পর্যবেক্ষক চালান

অন্যান্য উল্লেখযোগ্য পরিবর্তন

  • যখন আমরা একটি নন-ল্যাটিন স্ট্রিং দিয়ে টেক্সট টাইপ করতে পারি না তখন আরও ভাল ত্রুটি বার্তা যোগ করুন

UIA automator 2.0 (2015-03-12)

UI অটোমেটর এখন অ্যান্ড্রয়েড ইন্সট্রুমেন্টেশনের উপর ভিত্তি করে, এবং আপনি ./gradlew connectedCheck কমান্ড ব্যবহার করে পরীক্ষা তৈরি এবং চালাতে পারেন।

এসপ্রেসো সংস্করণ 2.0, টেস্ট রানার 0.1 (রিলিজ হয়েছে: 2014-12-19)

ব্রেকিং পরিবর্তন

  • 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 সংঘর্ষ (উন্নয়নের ব্যথার একটি প্রধান উত্স) এড়াতে ঐচ্ছিক (একটি পেয়ারা নির্ভরতা) পাবলিক API থেকে সরানো হয়েছে। প্রভাবিত পদ্ধতিগুলির মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত রয়েছে:
    • ViewAssertion.check()
    • HumanReadables.getViewHierarchyErrorMessage()

নতুন বৈশিষ্ট

  • কর্ম
    • ViewActions
      • replaceText()
      • openLink()
      • উপরে এবং নিচে সোয়াইপ করুন
    • espresso-অবদান
      • RecyclerViewActions : RecyclerViews এর সাথে মিথস্ক্রিয়া পরিচালনা করে
      • PickerActions : Date এবং Time বাছাইকারীদের সাথে মিথস্ক্রিয়া পরিচালনা করে
  • ম্যাচার্স
    • RootMatchers
      • isPlatformPopup()
    • ViewMatchers
      • isJavascriptEnabled()
      • withSpinnerText()
      • withHint()
      • isSelected()
      • hasLinks()
    • LayoutMatchers : i18n-সম্পর্কিত লেআউট পরীক্ষার জন্য ম্যাচার্স
    • CursorMatchers : Cursor অবজেক্টের জন্য ম্যাচার্সের একটি সংগ্রহ
  • দাবী
    • isLeftOf() এবং isAbove() সহ PositionAssertions : পর্দায় উপাদানগুলির আপেক্ষিক অবস্থান পরীক্ষা করার জন্য ViewAssertions সংকলন
    • LayoutAssertions : i18n-সম্পর্কিত লেআউট পরীক্ষার জন্য দাবী
  • পরীক্ষা অ্যাপ: অনেক নতুন নমুনা কার্যক্রম/পরীক্ষা
  • অন্যান্য
    • Espresso.unregisterIdlingResources() এবং Espresso.getIdlingResources() : IdlingResources এর সাথে কাজ করার জন্য অতিরিক্ত নমনীয়তা প্রদান করে
    • ViewInteraction.withFailureHandler() : onView() থেকে ব্যর্থ হ্যান্ডলারকে ওভাররাইড করার অনুমতি দেয়
    • CursorAdapters দ্বারা সমর্থিত AdapterViews জন্য onData() সমর্থন

বাগ ফিক্স

  • ViewMatchers.isDisplayed() এমন ভিউগুলির সাথে মেলে যা পুরো স্ক্রিনটি নেয়, কিন্তু 90% এর কম প্রদর্শিত হয় না
  • DrawerActions.openDrawer() এ সোয়াইপ অ্যাকশন কল করার ফলে আর IdlingResourceTimeoutException পাওয়া যায় না

অন্যান্য উল্লেখযোগ্য পরিবর্তন

  • Maven এর সাথে বিল্ডিং থেকে Gradle এ স্যুইচ করা হয়েছে
  • DEX সংঘর্ষ এড়াতে এসপ্রেসো নির্ভরতা (পেয়ারা, ড্যাগার, হ্যামক্রেস্ট) সরানো হয়েছে
  • অলস সংস্থানগুলি নিবন্ধন এবং নিবন্ধনমুক্ত করার সময় সাফল্য বা ব্যর্থতা ফেরাতে পরিবর্তন করা হয়েছে৷
  • ললিপপ সমর্থন: সংস্করণ-সম্পর্কিত পরিবর্তনের জন্য একটি ইন্টারফেসের পিছনে message.recycle() রাখুন
  • টার্গেট SDK লেভেল 21-এ স্যুইচ করা হয়েছে - বেশিরভাগ পরীক্ষা অ্যাপকে প্রভাবিত করে

সংস্করণ 1.1 (রিলিজ হয়েছে: 2014-01-08)

এসপ্রেসো

  • নতুন swipeLeft এবং swipeRight ViewActions
  • মাল্টি-উইন্ডো সমর্থন: একটি উন্নত বৈশিষ্ট্য যা লক্ষ্য উইন্ডোটি বাছাই করতে সক্ষম করে যার উপর এসপ্রেসো অপারেশন চালানো উচিত
  • TypeTextAction এর উন্নতি: একটি প্রাক-ফোকাসড ভিউতে টেক্সট টাইপ করার অনুমতি দেয়, যা টেক্সট যুক্ত করা সহজ করে তোলে
  • অসংখ্য বাগ ফিক্স

এসপ্রেসো অবদান লাইব্রেরি

  • এই নতুন লাইব্রেরিতে এমন বৈশিষ্ট্য রয়েছে যা এসপ্রেসোর পরিপূরক, কিন্তু মূল গ্রন্থাগারের অংশ নয়
  • DrawerLayout কাজ করার জন্য নতুন DrawerActions : অ্যান্ড্রয়েড সাপোর্ট লাইব্রেরির উপর নির্ভরশীলতা রয়েছে, তাই আমরা এটিকে মূল এসপ্রেসো লাইব্রেরির বাইরে রাখছি

নমুনা পরীক্ষা

  • এই পরীক্ষাগুলি পরীক্ষা অ্যাপের মতো একই প্যাকেজে থাকার জন্য স্থানান্তরিত করা হয়েছে৷
  • ডুপ্লিকেট পেয়ারা ডিপ অপসারণের জন্য মাভেন পিওএম ঠিক করা হয়েছে, তাই mvn install এখন কাজ করা উচিত