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

AndroidX Test Espresso 3.1.1, Runner 1.1.1, Rules 1.1.1, Monitor 1.1.1 AndroidTestOrchestrator 1.1.1, Core 1.1.0, Truth 1.1.0, JUnit 1.1.0 (2018-12-13)

এটি AndroidX Test 1.1.0-এর স্থিতিশীল সংস্করণ।

  • মূল
    • অ্যাক্টিভিটি সিনারিওকে এমন অ্যাক্টিভিটি সমর্থন করতে তৈরি করুন যা অন্য একটি অ্যাক্টিভিটি শুরু করে।

AndroidX Test Espresso 3.1.1-beta01, Runner 1.1.1-beta01, Rules 1.1.1-beta01, Monitor 1.1.1-beta01 AndroidTestOrchestrator 1.1.1-beta01, Core 1.1.0-beta01 Truth 1.1.0-beta01, JUnit 1.1.0-beta01 (2018-12-06)

  • মূল
    • নতুন core-ktx কোটলিন এক্সটেনশন আর্টিফ্যাক্ট! এতে একটি কোটলিন-বান্ধব ActivityScenario.launchActivity API অন্তর্ভুক্ত রয়েছে।
    • কাস্টম ইন্টেন্ট ব্যবহার করে অ্যাক্টিভিটি চালু করার জন্য নতুন অ্যাক্টিভিটিসিনারিও এপিআই
    • অ্যাক্টিভিটির ফলাফল পাওয়ার জন্য নতুন অ্যাক্টিভিটিসিনারিও এপিআই
    • ActivityScenario বন্ধযোগ্য করুন
  • এসপ্রেসো
    • withResourceNameMatcher এবং HumanReadables-কে API 28-এর সাথে সামঞ্জস্যপূর্ণ করতে পরিবর্তন করুন।
    • `ReplaceTextAction`-এর বিবরণে `stringToBeSet` অন্তর্ভুক্ত করার জন্য তা আপডেট করুন।
    • রোবোইলেকট্রিক পজড লুফার মোডে এসপ্রেসো সমর্থন করে।
  • জেইউনিট
    • টেস্ট সেটআপ এবং টিয়ারডাউনের সময় স্বয়ংক্রিয়ভাবে অ্যাক্টিভিটি চালু ও বন্ধ করার জন্য নতুন ActivityScenarioRule API।
    • নতুন junit-ktx কোটলিন এক্সটেনশন আর্টিফ্যাক্ট! এতে একটি কোটলিন-বান্ধব ActivityScenarioRule API অন্তর্ভুক্ত রয়েছে।
  • দৌড়বিদ
    • প্যাকেজ গ্রহণ করার সময় -e package এবং -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 ১৪ এবং targetSdkVersion ২৮ এ সেট করুন।
  • এসপ্রেসো
    • নন-স্ট্রিং টাইপের সাথে কাজ করার জন্য withContentDescription ঠিক করুন।
    • রোবোইলেকট্রিক-এ এসপ্রেসো ব্যবহারের জন্য সমর্থন যোগ করুন
    • সমস্যা ৭২৭৯৮৬২৫ : textAllCaps সক্রিয় থাকলে Espresso ViewMatchers.withText কাজ করে না
    • গতি ইভেন্টের একটি ক্রম ইনজেক্ট করার জন্য সমর্থন যোগ করুন
  • অভিপ্রায়
    • ইনটেন্টগুলোর তালিকা পুনরুদ্ধারের জন্য বিটা এপিআই যোগ করা হয়েছে। এটি নতুন ট্রুথ অ্যাসারশনের সাথে ব্যবহারের জন্য উদ্দিষ্ট।
  • দৌড়বিদ
    • ইনস্ট্যান্ট অ্যাপের জন্য সমর্থন যোগ করুন
    • androidx.test.runner.AndroidJUnit4-কে অপ্রচলিত ঘোষণা করুন এবং এর পরিবর্তে androidx.test.ext.junit.runners.AndroidJUnit4 ব্যবহার করুন।
  • মনিটর
    • androidx.test.InstrumentationRegistry-কে অপ্রচলিত ঘোষণা করে androidx.test.platform.app.InstrumentationRegistry এবং androidx.test.core.app.ApplicationProvider দ্বারা প্রতিস্থাপন করুন।
  • অ্যান্ড্রয়েডটেস্টঅর্কেস্ট্রেটর
    • শুধুমাত্র তখনই অর্কেস্ট্রেটর কভারেজ হ্যান্ডলিং সক্রিয় করুন, যখন 'coverage' এবং 'coverageFilePath' উভয় আর্গুমেন্টই পাস করা হয়।
    • শুধুমাত্র -debug সেট করা থাকলেই ডিবাগারের জন্য অপেক্ষা করুন, কিন্তু ATO টেস্ট কেস তালিকাভুক্ত করার জন্য নয়। অর্কেস্ট্রেটরকে নিজেই ডিবাগ করার জন্য একটি নতুন orchestratorDebug ফ্ল্যাগ যোগ করা হয়েছে।
  • মূল
    • নতুন সংযোজন! এতে নতুন এপিআই অন্তর্ভুক্ত রয়েছে যা স্থানীয় এবং ডিভাইস-ভিত্তিক উভয় প্রকার পরীক্ষাই সমর্থন করে:
      • প্রসঙ্গ পুনরুদ্ধার করা হচ্ছে: অ্যাপ্লিকেশনপ্রোভাইডার
      • অ্যাক্টিভিটি লাইফসাইকেল নিয়ন্ত্রণ: অ্যাক্টিভিটিসিনারিও(বিটা)
      • MotionEvent, PackageInfo-এর জন্য বিল্ডার
      • পার্সেবল ইউটিলিটি ক্লাস
  • সত্য
    • নতুন আর্টিফ্যাক্ট! এতে Notification, Intent, Bundle, Parcelable, এবং MotionEvent-এর জন্য কাস্টম ট্রুথ সাবজেক্ট অন্তর্ভুক্ত রয়েছে।
  • জেইউনিট
    • নতুন আর্টিফ্যাক্ট! এতে androidx.test.ext.junit.runners.AndroidJUnit4 নামের JUnit রানার ক্লাসটি অন্তর্ভুক্ত রয়েছে, যা লোকাল এবং অন-ডিভাইস উভয় ধরনের টেস্ট সমর্থন করে।

এসপ্রেসো ৩.০.২-বিটা১, রানার ১.০.২-বিটা১, রুলস ১.০.২-বিটা১, মনিটর ১.০.২-বিটা১, অ্যান্ড্রয়েডটেস্টঅর্কেস্ট্রেটর ১.০.২-বিটা১ (২০১৮-০৪-১৬)

  • এসপ্রেসো
    • ব্রেকিং এপিআই পরিবর্তন:
      • ইস্যু 64062890 -তে আমাদের নজরে আনা হয়েছিল যে আমরা আমাদের পাবলিক এপিআই-তে গুয়াভা অপশনাল (Guava Optional) ব্যবহার করছিলাম। এটি আমাদের পক্ষ থেকে একটি মারাত্মক ভুল ছিল। ফলস্বরূপ, এই সমস্যাটির সমাধান করার জন্য এই রিলিজে পাবলিক এপিআই-তে একটি ব্রেকিং পরিবর্তন আনা হয়েছে। আমরা গুয়াভা অপশনাল ক্লাসের চারপাশে একটি অসুন্দর র‍্যাপার (wrapper) চালু করেছি, যার নাম এসপ্রেসোঅপশনাল (EspressoOptional) এবং এটি "android.support.test.espresso.util" নেমস্পেসের অধীনে রয়েছে। যে সকল ডেভেলপার লিক হওয়া গুয়াভা অপশনাল এপিআই ব্যবহার করছিলেন, এই নতুন সংস্করণে আপডেট করার সময় তাদের ইম্পোর্ট (import) এবং রেফারেন্স (reference) পরিবর্তন করে এসপ্রেসোঅপশনাল ব্যবহার করতে হবে। এই অসুবিধার জন্য আমরা দুঃখিত।
    • ত্রুটি প্রতিরোধ করার জন্য onView() এবং onData() API-গুলোকে এখন @CheckReturnValue হিসেবে চিহ্নিত করা হয়েছে।
    • espresso-core POM ফাইলটি সংশোধন করা হয়েছে যাতে এটি "rules" ডিপেন্ডেন্সিটি পুল না করে, পরিবর্তে espresso-intents POM ফাইলটি তা পুল করে। ডেভেলপারদের জন্য এটি একটি NoOp পরিবর্তন হওয়া উচিত, কারণ espresso-core ছাড়া espresso-intents ব্যবহার করা যায় না।
    • সমস্যা 65486414 : Espresso-তে guava নির্ভরতা অনুপস্থিত
    • সমস্যা ৬৫৫৭৬১৭৪ : Espresso IdlingResourceRegistry.sync-এর কারণে দ্বিতীয় পরীক্ষাটি ব্যর্থ হয়
    • সমস্যা ৬৫৫৬৮৬২৯ : Espresso.onIdle, IdlingRegistry ব্যবহার করছে না
    • ইস্যু ৬৯৩৩৩৫৯৮ : অ্যান্ড্রয়েড লাইব্রেরি মডিউলে espresso 3.0.1, play-services-auth:11.6.0-এর সাথে সামঞ্জস্যপূর্ণ নয়।
    • ইস্যু ৬৪০৬২৮৯০ : AdapterViewProtocol ইন্টারফেস দ্বারা প্রকাশিত অভ্যন্তরীণ ঐচ্ছিক টাইপ
    • ইস্যু ৬৪০৯১৮৪৭ : এসপ্রেসো ৩.০.০-এর টেস্ট রানারের উপর নির্ভর করা উচিত নয়।
    • ইস্যু ৭৩৭২২০৫০ : espresso-contrib ৩.০.২-alpha1 প্যাকেজের android.arch.{lifecycle/core} ক্লাসসমূহ
  • এসপ্রেসো-রিমোট
    • এটি একটি সম্পূর্ণ নতুন আর্টিফ্যাক্ট। আমরা এসপ্রেসোর সমস্ত মাল্টি-প্রসেস কার্যকারিতাকে এসপ্রেসো-কোর আর্টিফ্যাক্টের বাইরে আলাদা করে দিয়েছি। এটি আরও পরিচ্ছন্ন এবং এর ফলে এসপ্রেসো-কোরের সামগ্রিক আকার ও মেথডের সংখ্যা উল্লেখযোগ্যভাবে কমে আসবে।
  • দৌড়বিদ
    • বাইন্ডার ট্রানজ্যাকশনের জন্য স্ট্যাক ট্রেস খুব বড় হলে তা সংক্ষিপ্ত করুন। যেহেতু AJUR-কে একটি বাইন্ডার IPC-এর মাধ্যমে AM-কে ব্যর্থতার রিপোর্ট করতে হয়, তাই আমাদের নিশ্চিত করতে হবে যে আমরা বাইন্ডার ট্রানজ্যাকশন সীমা অতিক্রম না করি - যা প্রতি প্রসেসে ১ মেগাবাইট।
    • সমস্যা 65828576 : @Ignore সহ ক্লাসে টেস্ট চালানোর সময় TestRequestBuilder ক্র্যাশ করে
    • ইস্যু ৩৭০৫৭৫৯৬ : আমরা @BeforeClass-এ ব্যর্থতাগুলো পরিচালনা করি না।
  • নিয়ম
    • লাইফসাইকেল পরিবর্তনের পর পরীক্ষাধীন অ্যাক্টিভিটির রেফারেন্সটি রিলিজ করা নিশ্চিত করুন। পরীক্ষার সময়কালে, #getActivity() থেকে প্রাপ্ত রেফারেন্স ব্যবহার করে এখন সরাসরি অ্যাক্টিভিটিটি পরিচালনা করা যাবে। যদি অ্যাক্টিভিটিটির কাজ শেষ হয়ে যায় এবং এটি পুনরায় চালু করা হয়, তাহলে #getActivity() দ্বারা ফেরত আসা রেফারেন্সটি এখন সর্বদা অ্যাক্টিভিটিটির বর্তমান ইনস্ট্যান্সকে নির্দেশ করবে।
    • সমস্যা ৬৪৩৮৯২৮০ : GrantPermissionRule-এ WRITE_EXTERNAL_STORAGE অন্তর্ভুক্ত নেই
    • সমস্যা ৩৭০৬৫৯৬৫ : ওরিয়েন্টেশন পরিবর্তনের পর ActivityTestRule থেকে অ্যাক্টিভিটি লিক হয়
    • সমস্যা ৭৫২৫৪০৫০ : কনফিগারেশন পরিবর্তনের সময় ActivityTestRule, Activity ইনস্ট্যান্স আপডেট করে না।
    • ইস্যু ৬৪৪৬৪৬২৫ : অ্যাক্টিভিটির finish() মেথডের মধ্যে UI-এর কাজ করা যাচ্ছে না
  • অ্যান্ড্রয়েডটেস্টঅর্কেস্ট্রেটর
    • প্রদত্ত স্থানে কভারেজ ফাইল তৈরি করতে -e coverage true -e coverageFilePath /sdcard/foo/ ফ্ল্যাগগুলো পাস করুন (অ্যাপটির অবশ্যই প্রদত্ত স্থানে লেখার অনুমতি থাকতে হবে)। কভারেজ ফাইলের নামকরণের নিয়মটি এখন com.foo.Class#method1.ec এর মতো দেখাবে। উল্লেখ্য, এটি শুধুমাত্র আইসোলেটেড মোডে চলার সময় সমর্থিত। এছাড়াও, এটি AndroidJUnitRunner-এর coverageFile ফ্ল্যাগের সাথে একসাথে ব্যবহার করা যাবে না। কারণ তৈরি হওয়া কভারেজ ফাইলগুলো একে অপরকে ওভাররাইট করে দেয়।
    • যদি আপনি চান যে অর্কেস্ট্রেটর প্রতিটি টেস্ট আহ্বানের মাঝে pm clear context.getPackageName() এবং pm clear targetContext.getPackageName() কমান্ডগুলো চালাক, তাহলে -e clearPackageData ফ্ল্যাগটি পাস করুন। উল্লেখ্য, clear কমান্ডের context হলো পরীক্ষাধীন অ্যাপের context।
    • সমাধান করা হয়েছে - যখন একটি খালি টেস্ট চালানো হতো (অর্থাৎ টার্গেটের ভিতরে @Test ছাড়া), তখন টেস্টের ফলাফল লেগ্যাসি মোডের থেকে ভিন্ন হতো।
    • সমস্যা ৭২৭৫৮৫৪৭ : টেস্ট অর্কেস্ট্রেটরের কারণে জ্যাকোকো কভারেজ ডেটা অসম্পূর্ণ থাকে, এতে শুধু শেষ টেস্ট রানের ডেটা থাকে।
    • ইস্যু ৬৭৯১৬০৪২ : অ্যান্ড্রয়েড টেস্ট অর্কেস্ট্রেটর : মেমোরি শেষ হয়ে যাওয়ার কারণে প্রসেস ক্র্যাশ হওয়ায় এক্সিকিউশন বন্ধ হয়ে গেছে
    • সমস্যা ৭৭৭৫২৭৩৫ : TransactionTooLargeException-এর কারণে Orchestrator ক্র্যাশ করে
    • সমস্যা ৭৭৫৪৯৪৮১ : প্রতিটি টেস্টের পর টেস্ট অর্কেস্ট্রেটরের "pm clear" চালানো উচিত

এসপ্রেসো ৩.০.২-আলফা১, রানার ১.০.২-আলফা১, রুলস ১.০.২-আলফা১, অ্যান্ড্রয়েডটেস্টঅর্কেস্ট্রেটর ১.০.২-আলফা১ (২০১৭-১২-০৫)

  • এসপ্রেসো

    • Intents এখন একটি কলযোগ্য রেসপন্স রয়েছে, যার ফলে একটি ফায়ার হওয়া ইন্টেন্ট ক্যাপচার করার পর কিন্তু একটি Instrumentation.ActivityResult অবজেক্ট রিটার্ন করার আগে টেস্টগুলো এক্সিকিউট করা যায়।
  • দৌড়বিদ

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

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

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

    • ইস্যু 65828576 : @Ignore অ্যানোটেশনযুক্ত কোনো ক্লাসে টেস্ট চালানোর সময় TestRequestBuilder ক্র্যাশ করে (টেস্ট চালানো বা JUnit ফিচার ছাড়া স্বতন্ত্রভাবে)।

  • অ্যান্ড্রয়েডটেস্টঅর্কেস্ট্রেটর

    • এখন এটি নন-অর্কেস্ট্রেটেড AndroidJUnitRunner এর মতোই খালি টেস্টগুলো পরিচালনা করে।
    • Orchestrator এখন AndroidJUnitRunner থেকে আসা অত্যন্ত বৃহৎ স্ট্যান্ডার্ড আউটপুট পরিচালনা করতে পারে।

এসপ্রেসো ৩.০.১, রানার ১.০.১, রুলস ১.০.১, অ্যান্ড্রয়েডটেস্টঅর্কেস্ট্রেটর ১.০.১ (২০১৭-০৮-২৮)

  • এসপ্রেসো

    • যখন একটি স্টেপ ডিবাগার ভিএম-এর সাথে সংযুক্ত থাকে, তখন onTimeout() দমন করার জন্য একটি IdlingPolicy অপশন যোগ করা হয়েছে।
    • ইস্যু ৬৪০২৪৬৫৬ , ৬৪২৪৭৫৮৬ , এবং ৬৪৫২৫৮৮১ : অসফল ক্লাস লোডিংয়ের জন্য ব্যর্থতার রিপোর্ট করবেন না, যদি না কোনো ব্যবহারকারী -e ক্লাস রানার আর্গুমেন্ট অন্তর্ভুক্ত করে নির্দিষ্ট ক্লাস লোড করেন।
    • ইস্যু ৬৪৮৭৭২৪৬ : সোর্স JAR ফাইলে অনুপস্থিত ক্লাসগুলো যোগ করুন।
  • দৌড়বিদ

    • সরলীকৃত ShardingFilter লজিক।
    • ইস্যু ৬৫০২৫৭৪৩ : @RequiresDevice ফিল্টার এখন FTL এমুলেটর সমর্থন করে।
  • অ্যান্ড্রয়েডটেস্টঅর্কেস্ট্রেটর

    • ব্যর্থতার রিপোর্ট পুনরাবৃত্তি করবেন না। এখন কোনো টেস্ট প্রসেস ব্যর্থ হওয়ার পর ক্র্যাশ করলে, টেস্টটির জন্য শুধুমাত্র একটি ব্যর্থতাই রিপোর্ট করা হবে।
    • Orchestrator-এর জন্য Javadoc সংশোধন করা হয়েছে।
    • রিমোট প্রসেস ক্র্যাশ করলে টেস্টগুলো এখন মিসড হিসেবে দেখানো হবে।
    • এখন উপেক্ষা করা টেস্ট কেসগুলোও পরিচালনা করে।
    • পূর্ববর্তী ফলাফলের সাথে সামঞ্জস্য রাখতে এখন ফুটার থেকে উপেক্ষা করা টেস্ট কেসগুলো বাদ দেওয়া হয়েছে।
    • রানটাইম পারমিশনের সমস্যা সমাধান করা হয়েছে। এখন থেকে অ্যান্ড্রয়েড ৭.০ (এপিআই লেভেল ২৪) এবং এর পরবর্তী সংস্করণগুলোতে টেস্ট রিপোর্ট এসডি কার্ডে লেখা হবে।

এসপ্রেসো ৩.০.০, রানার ১.০.০, রুলস ১.০.০, অ্যান্ড্রয়েডটেস্টঅর্কেস্ট্রেটর ১.০.০ (২৫-০৭-২০১৭, ঘোষণা )

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

  • সমস্ত প্রত্নবস্তু
    • ১৫-এর কম এপিআই লেভেলের জন্য সমর্থন বন্ধ করা হচ্ছে – তবে, ব্যবহারকারীদের আপগ্রেড করার জন্য সময় দিতে ন্যূনতম এসডিকে এখনও এপিআই লেভেল ৯-কে নির্দেশ করছে।
  • এসপ্রেসো
    • অপ্রচলিত android.support.test.espresso.contrib.CountingIdlingResource ক্লাসটি মুছে ফেলা হয়েছে এবং android.support.test.espresso.idling.CountingIdlingResource এ স্থানান্তর করা হয়েছে।
    • গুয়াভাকে এখন একটি ভিন্ন "অভ্যন্তরীণ" নেমস্পেসে jarjar করা হয়েছে – আপনি যদি ভুলবশত এসপ্রেসো নেমস্পেসের মাধ্যমে গুয়াভা এপিআই ব্যবহার করেন, তাহলে আপনি সমস্যা দেখতে পারেন।
      • শেডেড গুয়াভা ( .core.deps.guava. ) এর সমস্ত রেফারেন্স মুছে ফেলুন।
      • আপনার সাপোর্ট লাইব্রেরি সংস্করণটি 25.4.0 বা উচ্চতর সংস্করণে আপগ্রেড করুন।

পরিচিত সমস্যা

  • অ্যান্ড্রয়েডটেস্টঅর্কেস্ট্রেটর

নতুন বৈশিষ্ট্য

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

বাগ সংশোধন

  • এসপ্রেসো
    • অস্থিরতা উল্লেখযোগ্যভাবে কমাতে উন্নত রুট ভিউ সিঙ্ক্রোনাইজেশন।
    • IdlingResourceRegistry এর ত্রুটি সংশোধন করুন
    • IdlingResource অবজেক্টের সাথে আরও ভালো সিঙ্ক্রোনাইজেশন
    • সমস্যা ৩৭১৩২৬৮০ : পরবর্তী কাজটি করার আগে এসপ্রেসো ডায়ালগ তৈরি সম্পূর্ণ হওয়ার জন্য অপেক্ষা করে না।
    • ইস্যু ৩৭১০৩২৮০ : Espresso-এর উচিত ProGuard কনজিউমার রুলগুলো অন্তর্ভুক্ত করা, যাতে গ্রাহকদের সেগুলো যোগ করার প্রয়োজন না হয়।
    • ইস্যু ৩৭০৯৪৭২৬ : এসপ্রেসো ইনটেন্টস-এ অপ্রয়োজনীয় অ্যাপ্লিকেশন লেবেল রয়েছে
    • সমস্যা ৩৭০৯৩৯৫৩ : এসপ্রেসো: নাল/খালি ত্রুটির টেক্সটের জন্য কোনো চেক উপলব্ধ নেই
    • ইস্যু ৩৭০৭১৭৭৬ : espresso-core গুয়াভার .pom ফাইলগুলো এমবেড করে
    • ইস্যু ৩৭০৬২৬১২ : release() এ NPE
    • সমস্যা ৩৭০৬৩৩৮৯ : androidTest ডিপেন্ডেন্সি হিসেবে Guava এবং espresso-web থাকলে কম্পাইল হয় না
    • ইস্যু ৩৭০৭০৫৩৩ : অ্যান্ড্রয়েড ডিজাইন সাপোর্ট লাইব্রেরিতে NavigationView এর জন্য সাপোর্ট যোগ করুন
  • দৌড়বিদ
    • @UiThreadTest এবং @Test(timeout = 123) একসাথে ব্যবহার করার ক্ষমতা ঠিক করুন।
    • -e notClass রানার আর্গুমেন্টটি ঠিক করা হয়েছে।
    • JUnit3 ও JUnit4 টেস্ট স্যুট, সেইসাথে ParameterizedEnclosed রানার সমর্থন করার জন্য -e log বিকল্পটি সংশোধন করা হয়েছে।
    • সমস্যা ৩৭৬৬৩৫৩০ : প্রতিটি পরীক্ষা পদ্ধতির আগে ও পরে সমস্ত কার্যকলাপ শেষ হওয়ার জন্য অপেক্ষা করুন
    • সমস্যা ৩৭১৩২৬৮০ : পরবর্তী কাজটি করার আগে এসপ্রেসো ডায়ালগ তৈরি সম্পূর্ণ হওয়ার জন্য অপেক্ষা করে না।
    • ইস্যু ৩৭১২৩২১৩ : x86_64 ABI-তে @RequiresDevice উপেক্ষা করা হয়েছে
    • ইস্যু ৩৭১০১৪৮৫ : AndroidJUnitRunner এর জন্য ম্যানিফেস্টে প্রদত্ত কিছু আর্গুমেন্ট—যেমন টেস্ট সাইজ, অ্যানোটেশন এবং ডিবাগ—উপেক্ষা করা হচ্ছে।
    • ইস্যু ৩৭০৮২৮৫৭ : স্ট্যাটিক অবজেক্টের ক্ষেত্রে এসপ্রেসো সেমি-প্যারালাল টেস্ট এক্সিকিউশন ব্যর্থ হয়
    • ইস্যু ৩৭০৬৩৩৩৯৬ : ProviderTestCase2 দিয়ে কনটেক্সট ইনিশিয়ালাইজ করা হয়নি (এর ফলে NullPointerException ঘটে)
  • নিয়ম
  • UiAutomator
    • UiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES এর সাথে ব্যবহারের জন্য setUiAutomationFlags() – এটি অন্যান্য অ্যাক্সেসিবিলিটি পরিষেবা চালু থাকা অবস্থাতেও UiAutomator ব্যবহার করার সুযোগ দেয়।
    • ইস্যু ৩৭০৮২৮১৩ : এপিআই লেভেল ১৯ বা তার কম হলে খালি EditText অবজেক্টে setText() কল করলে NullPointerException থ্রো করে।

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

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

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

এসপ্রেসো ২.২.২, রানার/রুলস ০.৫ (২০১৬-০২-২২, নীরবে প্রকাশ)

নতুন বৈশিষ্ট্য

  • এসপ্রেসো
    • ইস্যু ১৯৪২৫৩ : অ্যান্ড্রয়েড সাপোর্ট ডিজাইন লাইব্রেরিতে NavigationView-এর জন্য সাপোর্ট যোগ করা
    • সক্রিয় অ্যানিমেশন এবং ট্রানজিশনগুলির জন্য চেক যুক্ত করা হয়েছে।
    • নতুন ViewMatcher এপিআই: withResourceName()

বাগ সংশোধন

  • এসপ্রেসো
    • ইস্যু ১৯৫৩৩১ : এসপ্রেসো-কোর গুয়াভার পম ফাইলগুলো এমবেড করে
    • গণনার নিষ্ক্রিয় রিসোর্সটিকে espresso-contrib থেকে সরিয়ে নেওয়া হয়েছে।
  • নিয়ম
  • দৌড়বিদ
    • ইস্যু ১৯৬০৬৬: AndroidJUnitRunner এর -e log true আর্গুমেন্টটি প্রকৃত পরীক্ষাকে বাইপাস করে না
    • রানারের onCreate() ফাংশনে ডিবাগারের জন্য অপেক্ষা করুন।
    • সমস্ত সমর্থিত টেস্ট অ্যানোটেশন প্ল্যাটফর্ম থেকে সরিয়ে ATSL-এ স্থানান্তর করা হয়েছে।
    • JSBridge না থাকার বিষয়ে স্ট্যাক ট্রেস ডাম্পটি মুছে ফেলা হয়েছে।
    • AndroidAnnotatedBuilder ঠিক করা হয়েছে

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

  • ActivityTestRule , UiThreadTestRule , IntentsTestRule এবং ServiceTestRule এখন বিটা পর্যায় থেকে বেরিয়ে এসেছে।
  • অভিন্ন কোড ফরম্যাটিংয়ের জন্য কোড স্টাইল সেটিংস ফাইল যোগ করুন

এসপ্রেসো ২.২.১, রানার/নিয়মাবলী ০.৪ (২০১৫-০৯-১৫)

নতুন বৈশিষ্ট্য

  • নিয়ম
    • ActivityTestRule সাথে সম্পূর্ণ সামঞ্জস্যপূর্ণ করার জন্য নতুন IntentsTestRule কনস্ট্রাক্টর যোগ করা হয়েছে।
  • দৌড়বিদ
    • এপিআই লেভেল ১৫ এবং তার নিচের লেভেলগুলোর জন্য বিশেষ মাল্টিডেক্স ইনস্টলেশন ব্যবস্থা যোগ করা হয়েছে।
    • ক্লাস এবং প্যাকেজে এক্সক্লুড ফিল্টার যোগ করা হয়েছে:
      • একটি নির্দিষ্ট ক্লাসের টেস্টগুলো ছাড়া বাকি সব টেস্ট চালানো: adb shell am instrument -w -e notClass com.android.foo.FooTest
      • একটি পরীক্ষা ছাড়া বাকি সব চালানো হচ্ছে: adb shell am instrument -w -e notClass com.android.foo.FooTest#testFoo
      • একটি নির্দিষ্ট প্যাকেজ ছাড়া বাকি সব পরীক্ষা চালানো হচ্ছে: adb shell am instrument -w -e notPackage com.android.foo.bar

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

  • এসপ্রেসো
    • 157911 : একটি EditText অবজেক্টে ইনপুট টাইপের জন্য ভিউ ম্যাচিং যোগ করুন
    • 157912 : একটি EditText অবজেক্টে ত্রুটির টেক্সট মেলানোর জন্য ভিউ ম্যাচিং যোগ করুন
    • 150674 : যথেচ্ছ মাধ্যাকর্ষণযুক্ত ড্রয়ারের জন্য DrawerActions সমর্থন যোগ করুন
    • 150744 : DrawerActions আর parentListener লিক করে না
    • 153303 : "ড্রয়ারটি খোলা না বন্ধ" যাচাইয়ে মাধ্যাকর্ষণ নির্দিষ্ট করা হয়েছে
    • 157910 : DrawerLayout খোলা এবং বন্ধ করার অ্যাকশন ফ্যাক্টরি যোগ করুন

বাগ সংশোধন

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

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

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

এসপ্রেসো ২.২ / এটিএসএল ০.৩ (২০১৫-০৬-০৯)

নতুন বৈশিষ্ট্য

  • এসপ্রেসো-ওয়েব ২.২
    • নতুন WebView সমর্থন
  • এসপ্রেসো-কোর ২.২
    • ড্যাগার v2 ব্যবহারে স্থানান্তরিত করা হয়েছে
    • হ্যামক্রেস্ট v1.3 ব্যবহারে স্থানান্তরিত করা হয়েছে।
  • এসপ্রেসো-কন্ট্রিব ২.২
    • প্রবেশযোগ্যতা যাচাই
    • DrawerActions মাধ্যাকর্ষণ সমর্থন
  • নিয়ম ০.৩
    • DisableOnAndroidDebug নিয়ম
  • রানার ০.৩
    • JUnit v4.10 থেকে JUnit v4.12-এ আপগ্রেড করুন
    • Hamcrest v1.3 ব্যবহারে স্থানান্তরিত হয়েছে।

বাগ সংশোধন

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

এসপ্রেসো ২.১, টেস্ট রানার/রুলস ০.২ এবং ইউআইঅটোমেটর ২.১.০ (২০১৫-০৪-২১)

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

  • টেস্ট রানার আর্টিফ্যাক্টটি দুটি ভাগে বিভক্ত করা হয়েছে এবং এর নাম com.android.support.test:testing-support-lib:0.1 থেকে পরিবর্তন করে com.android.support.test:runner:0.2com.android.support.test:rules:0.2

নতুন বৈশিষ্ট্য

  • espresso-intents : একটি Mockito-সদৃশ API যা টেস্ট লেখকদের বহির্গামী ইনটেন্টগুলি যাচাই এবং স্টাব করার সুযোগ দিয়ে হারমেটিক ইন্টার-অ্যাক্টিভিটি টেস্টিং সক্ষম করে।
    • IntentsTestRule : ActivityTestRule এক্সটেন্ড করে, যা ফাংশনাল UI টেস্টে Espresso-Intent-সমূহকে ইনিশিয়ালাইজ ও রিলিজ করে।
  • এসপ্রেসো-কোর
    • ViewActions : অ্যাকশন চালানোর আগে গ্লোবাল অ্যাসারশন চালানোর সুবিধা যোগ করা হয়েছে। এটি এসপ্রেসোর উপর ভিত্তি করে তৈরি অন্যান্য ফ্রেমওয়ার্কের জন্য উপযোগী, যা বিদ্যমান এসপ্রেসো টেস্ট স্যুট চলার সময় ভিউ হায়ারার্কির অবস্থা যাচাই করতে সাহায্য করে।
    • ViewMatchers.withContentDescription() resId ওভারলোড
  • নিয়ম
    • ActivityTestRule : এই রুলটি একটিমাত্র অ্যাক্টিভিটির ফাংশনাল টেস্টিং প্রদান করে।
    • UiThreadRule এবং UiThreadTest অ্যানোটেশন: এই নিয়মটি UiThreadTest দ্বারা অ্যানোটেড টেস্ট মেথডকে অ্যাপ্লিকেশনের প্রধান থ্রেডে (বা UI থ্রেডে) এক্সিকিউট করার অনুমতি দেয়।
    • ServiceTestRule : এই রুলটি একটি সার্ভিসের ফাংশনাল টেস্টিং প্রদান করে।
  • দৌড়বিদ
    • ApplicationLifecycleCallback : অ্যাপ্লিকেশন লাইফসাইকেল ইভেন্ট নিরীক্ষণের জন্য কলব্যাক
    • এখন থেকে অ্যান্ড্রয়েড ম্যানিফেস্ট ফাইলে একটি <meta-data> ট্যাগ ব্যবহার করে সমস্ত রানার আর্গুমেন্টও নির্দিষ্ট করা যাবে।
  • UIAutomator
    • UiDevice.dumpWindowHierarchy() এখন একটি File বা OutputStream গ্রহণ করতে পারে।

বাগ সংশোধন

  • এসপ্রেসো
    • কলামটি খুঁজে না পেলে কার্সার ম্যাচিং এখন false রিটার্ন করে, যাতে হ্যামক্রেস্ট পরবর্তী কার্সারে যেতে পারে।
    • PreferenceMatchers withTitle সাথে NullPointerException আর ঘটে না।
    • নিষ্ক্রিয় রিসোর্স নিবন্ধনমুক্ত করলে Espresso আর মনে করে না যে আমাদের নিষ্ক্রিয় রিসোর্সগুলো ব্যস্ত আছে।
    • Espresso Contrib দ্বারা ব্যবহৃত সাপোর্ট অ্যানোটেশনের হালনাগাদ সংস্করণ
  • দৌড়বিদ
    • AndroidJUnit4 এখন ব্যর্থ অনুমান সহ পরীক্ষাগুলি এড়িয়ে যায়।
  • UIAutomator
    • StaleObjectException প্রতিরোধ করতে ওয়াচার চালান।

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

  • যখন কোনো অ-ল্যাটিন স্ট্রিং দিয়ে `typeText` করা যায় না, তখন আরও ভালো একটি ত্রুটি বার্তা যোগ করুন।

UIAutomator 2.0 (২০১৫-০৩-১২)

UI Automator এখন Android Instrumentation-এর উপর ভিত্তি করে তৈরি, এবং আপনি ./gradlew connectedCheck কমান্ডটি ব্যবহার করে টেস্ট বিল্ড ও রান করতে পারেন।

এসপ্রেসো সংস্করণ ২.০, টেস্ট রানার ০.১ (প্রকাশের তারিখ: ২০১৪-১২-১৯)

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

  • 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 সংঘর্ষ (যা ডেভেলপমেন্টের ক্ষেত্রে একটি বড় সমস্যা ছিল) এড়ানোর জন্য Optional (গুয়াভার একটি ডিপেন্ডেন্সি) পাবলিক API থেকে সরিয়ে ফেলা হয়েছে। এর ফলে নিম্নলিখিত মেথডগুলো প্রভাবিত হয়েছে:
    • 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() থেকে ফেইলর হ্যান্ডলারকে ওভাররাইড করার সুযোগ দেয়।
    • CursorAdapters দ্বারা সমর্থিত AdapterViews জন্য onData() সমর্থন

বাগ সংশোধন

  • ViewMatchers.isDisplayed() এমন ভিউগুলোকে ম্যাচ করে যেগুলো পুরো স্ক্রিন জুড়ে থাকে, কিন্তু প্রদর্শিত অংশের ৯০% এর কম থাকে না।
  • DrawerActions.openDrawer() -এ সোয়াইপ অ্যাকশন কল করলে এখন আর IdlingResourceTimeoutException দেখা দেয় না।

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

  • Maven দিয়ে বিল্ড করা থেকে Gradle-এ পরিবর্তন করা হয়েছে
  • DEX সংঘর্ষ এড়ানোর জন্য Espresso নির্ভরতাগুলো (Guava, Dagger, Hamcrest) সরিয়ে দেওয়া হয়েছে।
  • নিষ্ক্রিয় রিসোর্স নিবন্ধন এবং অনিবন্ধন করার সময় সাফল্য বা ব্যর্থতা ফেরত দেওয়ার জন্য পরিবর্তন করা হয়েছে।
  • ললিপপ সমর্থন: সংস্করণ-সম্পর্কিত পরিবর্তনগুলি বিবেচনা করার জন্য message.recycle() কে একটি ইন্টারফেসের পিছনে রাখুন।
  • টার্গেট SDK লেভেল ২১-এ পরিবর্তন করা হয়েছে – এটি মূলত টেস্ট অ্যাপকে প্রভাবিত করে।

সংস্করণ ১.১ (প্রকাশের তারিখ: ২০১৪-০১-০৮)

এসপ্রেসো

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

এসপ্রেসো কন্ট্রিবিউশন লাইব্রেরি

  • এই নতুন লাইব্রেরিতে এমন কিছু বৈশিষ্ট্য রয়েছে যা Espresso-কে পরিপূরক করে, কিন্তু মূল লাইব্রেরির অংশ নয়।
  • DrawerLayout উপর কাজ করার জন্য নতুন DrawerActions : এটি Android Support Library-এর উপর নির্ভরশীল, তাই আমরা এটিকে মূল Espresso লাইব্রেরির বাইরে রাখছি।

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

  • এই পরীক্ষাগুলো টেস্ট অ্যাপের সাথে একই প্যাকেজে লাইভে স্থানান্তর করা হয়েছে।
  • ডুপ্লিকেট গুয়াভা ডিপেন্ডেন্সিগুলো সরানোর জন্য Maven POM-গুলো সংশোধন করা হয়েছে, তাই এখন mvn install কাজ করার কথা।