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 artifactcom.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এ স্থানান্তর করা হয়েছে।-
registerIdlingResources()) এর পরিবর্তেgetInstance().register()) ব্যবহার করুন।
-
- গুয়াভাকে এখন একটি ভিন্ন "অভ্যন্তরীণ" নেমস্পেসে jarjar করা হয়েছে – আপনি যদি ভুলবশত এসপ্রেসো নেমস্পেসের মাধ্যমে গুয়াভা এপিআই ব্যবহার করেন, তাহলে আপনি সমস্যা দেখতে পারেন।
- শেডেড গুয়াভা (
.core.deps.guava.) এর সমস্ত রেফারেন্স মুছে ফেলুন। - আপনার সাপোর্ট লাইব্রেরি সংস্করণটি 25.4.0 বা উচ্চতর সংস্করণে আপগ্রেড করুন।
- শেডেড গুয়াভা (
- অপ্রচলিত
পরিচিত সমস্যা
- অ্যান্ড্রয়েডটেস্টঅর্কেস্ট্রেটর
-
-e numShardsএবং-e shardIndexরানার আর্গুমেন্টগুলো বর্তমানে সমর্থিত নয়। - প্যারামিটারাইজড টেস্ট বর্তমানে সমর্থিত নয়।
-
নতুন বৈশিষ্ট্য
- এসপ্রেসো
- এপিআই ২৬-এ
espresso-coreএবংespresso-webএর জন্য নতুন মাল্টিপ্রসেস এসপ্রেসো সাপোর্ট যুক্ত হয়েছে, কিন্তুespresso-contribজন্য নয়। - নতুন হালকা
IdlingRegistryAPI-
com.android.support.test.espresso:espresso-idling-resource:3.0.0এর অংশ হিসেবে প্রকাশিত। - অপ্রচলিত পদ্ধতিসমূহ:
-
-
Executorsসাথে সিঙ্ক্রোনাইজ করতে সাহায্য করার জন্য নতুন এপিআই- নতুন মেভেন আর্টিফ্যাক্ট:
com.android.support.test.espresso.idling:idling-concurrent:3.0.0 -
IdlingScheduledThreadPoolExecutorএবংIdlingThreadPoolExecutorক্লাসগুলো এতে রয়েছে
- নতুন মেভেন আর্টিফ্যাক্ট:
- নেটওয়ার্ক অনুরোধ এবং প্রতিক্রিয়ার সাথে সিঙ্ক্রোনাইজ করতে সাহায্য করার জন্য নতুন এপিআই।
- নতুন মেভেন আর্টিফ্যাক্ট:
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এবংSingleActivityFactory–startService()এবংsendBroadcast()এর মতো মেথড ওভাররাইড করার মাধ্যমে বাইরের জগৎ থেকে বিচ্ছিন্নভাবে একটি অ্যাক্টিভিটি পরীক্ষা করার সুবিধা প্রদান করে। -
AndroidJUnitRunnerএর সাথে JUnitParams ব্যবহারের জন্য সমর্থন যোগ করুন - কোর টেস্ট রানার লেভেলে
@UiThreadTestহ্যান্ডেল করা শুরু করুন এবং@UiThreadTestRuleডেপ্রিকেটেড করুন – এর ফলে@Beforeএবং@Afterদিয়ে অ্যানোটেট করা মেথডগুলোতে সরাসরি@UiThreadTestঅ্যানোটেশন ব্যবহার করা যাবে। -
@SdkSupressঅ্যানোটেশন এখনmaxSdkVersionভ্যালু সাপোর্ট করে (ইস্যু ৩৭০৬৭৭৯২ ) -
-e classLoader– রানার আর্গুমেন্ট ব্যবহার করে ক্লাস লোডার পাস করার সুবিধা প্রদান করে। -
-e filter– রানার আর্গুমেন্ট ব্যবহার করে কাস্টম JUnit ফিল্টার নির্দিষ্ট করার সুবিধা যোগ করুন -
-e runnerBuilder– ডেভেলপারদেরRunnerBuilderএর নিজস্ব ইমপ্লিমেন্টেশন প্রদান করার সুযোগ দেয়, যা নির্ধারণ করতে পারে যে এটি কোনো নির্দিষ্ট ক্লাসের বিরুদ্ধে রান করবে কি না এবং কীভাবে করবে।
-
- নিয়ম
-
ProviderTestRule–ContentProviderঅবজেক্ট পরীক্ষা করার জন্য নতুন এপিআই -
getActivityResult()এবংActivityResultMatchers– যে অ্যাক্টিভিটিsetResult()কল করেছে, তার রেজাল্ট পাওয়ার জন্য নতুন API।
-
- অ্যান্ড্রয়েডটেস্টঅর্কেস্ট্রেটর
- অ্যান্ড্রয়েড টেস্ট অর্কেস্ট্রেটর সঠিকতা এবং বিচ্ছিন্নতার উপর জোর দিয়ে টেস্ট সংগ্রহ ও চালানোর একটি নতুন উপায় প্রদান করে। অর্কেস্ট্রেটর একটি স্বাধীন ইন্সট্রুমেন্টেশন প্রসেস, যা প্রতিটি টেস্টের জন্য একটি করে ইন্সট্রুমেন্টেশন রানার প্রসেস তৈরি করে এবং ফলাফল সংগ্রহ করে।
- অ্যাপ্লিকেশন ক্র্যাশ করলে রানার ইন্সট্রুমেন্টেশন বন্ধ হয়ে যায়, কিন্তু অর্কেস্ট্রেটর বন্ধ হয় না, ফলে আপনার টেস্ট স্যুট চলতে পারে।
-
'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 টেস্ট স্যুট, সেইসাথে
ParameterizedওEnclosedরানার সমর্থন করার জন্য-e logবিকল্পটি সংশোধন করা হয়েছে। - সমস্যা ৩৭৬৬৩৫৩০ : প্রতিটি পরীক্ষা পদ্ধতির আগে ও পরে সমস্ত কার্যকলাপ শেষ হওয়ার জন্য অপেক্ষা করুন
- সমস্যা ৩৭১৩২৬৮০ : পরবর্তী কাজটি করার আগে এসপ্রেসো ডায়ালগ তৈরি সম্পূর্ণ হওয়ার জন্য অপেক্ষা করে না।
- ইস্যু ৩৭১২৩২১৩ : x86_64 ABI-তে
@RequiresDeviceউপেক্ষা করা হয়েছে - ইস্যু ৩৭১০১৪৮৫ :
AndroidJUnitRunnerএর জন্য ম্যানিফেস্টে প্রদত্ত কিছু আর্গুমেন্ট—যেমন টেস্ট সাইজ, অ্যানোটেশন এবং ডিবাগ—উপেক্ষা করা হচ্ছে। - ইস্যু ৩৭০৮২৮৫৭ : স্ট্যাটিক অবজেক্টের ক্ষেত্রে এসপ্রেসো সেমি-প্যারালাল টেস্ট এক্সিকিউশন ব্যর্থ হয়
- ইস্যু ৩৭০৬৩৩৩৯৬ :
ProviderTestCase2দিয়ে কনটেক্সট ইনিশিয়ালাইজ করা হয়নি (এর ফলেNullPointerExceptionঘটে)
-
- নিয়ম
- সাধারণ এবং লেজি
ActivityTestRuleইনিশিয়ালাইজেশনের আচরণ একীভূত করার জন্যActivityTestRuleলাইফসাইকেল স্থির করা হয়েছে। - ইস্যু ৩৭০৭৯৯৪৩ : পুনরায় বাইন্ডিংয়ের অনুমতি দেওয়ার জন্য
ServiceTestRuleসংশোধন করুন - ইস্যু ৩৭১০৯৩৪২ :
getActivityResult()এবংActivityResultMatchersযোগ করুন
- সাধারণ এবং লেজি
- UiAutomator
-
UiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICESএর সাথে ব্যবহারের জন্যsetUiAutomationFlags()– এটি অন্যান্য অ্যাক্সেসিবিলিটি পরিষেবা চালু থাকা অবস্থাতেওUiAutomatorব্যবহার করার সুযোগ দেয়। - ইস্যু ৩৭০৮২৮১৩ : এপিআই লেভেল ১৯ বা তার কম হলে খালি
EditTextঅবজেক্টেsetText()কল করলেNullPointerExceptionথ্রো করে।
-
অন্যান্য উল্লেখযোগ্য পরিবর্তন
- বাইনারিগুলো এখন গুগল ম্যাভেনের মাধ্যমে প্রকাশ করা হয়।
-
espresso-coreএবংespresso-webJAR ফাইলগুলির আকার কমানো হয়েছে – এমবেডেড ডিপেন্ডেন্সিগুলিতে এখন ProGuard প্রয়োগ করা হয়েছে। - এখন সকল
.aarফাইলে ProGuard নিয়মাবলী অন্তর্ভুক্ত রয়েছে। - রিলিজ করা আর্টিফ্যাক্টগুলিতে
proguard_library.cfgফাইলগুলি যোগ করুন -
Tapperইন্টারফেসেsendTap()এর একটি নতুন সংস্করণ রয়েছে যা ইমপ্লিমেন্ট করে
বাহ্যিক অবদান
- এসপ্রেসো
- দৌড়বিদ
- নিয়ম
এসপ্রেসো ২.২.২, রানার/রুলস ০.৫ (২০১৬-০২-২২, নীরবে প্রকাশ)
নতুন বৈশিষ্ট্য
- এসপ্রেসো
- ইস্যু ১৯৪২৫৩ : অ্যান্ড্রয়েড সাপোর্ট ডিজাইন লাইব্রেরিতে NavigationView-এর জন্য সাপোর্ট যোগ করা
- সক্রিয় অ্যানিমেশন এবং ট্রানজিশনগুলির জন্য চেক যুক্ত করা হয়েছে।
- নতুন
ViewMatcherএপিআই:withResourceName()
বাগ সংশোধন
- এসপ্রেসো
- ইস্যু ১৯৫৩৩১ : এসপ্রেসো-কোর গুয়াভার পম ফাইলগুলো এমবেড করে
- গণনার নিষ্ক্রিয় রিসোর্সটিকে espresso-contrib থেকে সরিয়ে নেওয়া হয়েছে।
- নিয়ম
- ইস্যু ১৮৭২৪৯ :
Intents.release()এ NPE
- ইস্যু ১৮৭২৪৯ :
- দৌড়বিদ
- ইস্যু ১৯৬০৬৬:
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খোলা এবং বন্ধ করার অ্যাকশন ফ্যাক্টরি যোগ করুন
- 157911 : একটি
বাগ সংশোধন
- এসপ্রেসো
-
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
DrawerActionsleakingParentListener - অনুমানের ব্যর্থতাকে এখন একটি ব্যর্থ পরীক্ষা হিসেবে না দেখে, একটি উপেক্ষা পরীক্ষা হিসেবে গণ্য করা হয়।
-
ExecutorServiceএর মাধ্যমেMonitoringInstrumentationঅ্যাক্টিভিটি ইনস্ট্যান্স লিক হওয়ার সমস্যাটি সমাধান করা হয়েছে। - বন্ধ অবস্থায় আটকে থাকা অনাথ কার্যক্রমগুলোর সমাধান করা হয়েছে।
- কোনো স্ক্রল ইভেন্ট তৈরি না হলে
Until.scrollFinished()true রিটার্ন করার জন্য আপডেট করুন।UiObject2#setText()-এ সম্ভাব্য NPE (নন-পার্সোনাল প্রেডিকশন) থেকে সুরক্ষা নিশ্চিত করুন।
এসপ্রেসো ২.১, টেস্ট রানার/রুলস ০.২ এবং ইউআইঅটোমেটর ২.১.০ (২০১৫-০৪-২১)
ব্রেকিং পরিবর্তন
- টেস্ট রানার আর্টিফ্যাক্টটি দুটি ভাগে বিভক্ত করা হয়েছে এবং এর নাম
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-Intent-সমূহকে ইনিশিয়ালাইজ ও রিলিজ করে।
-
- এসপ্রেসো-কোর
-
ViewActions: অ্যাকশন চালানোর আগে গ্লোবাল অ্যাসারশন চালানোর সুবিধা যোগ করা হয়েছে। এটি এসপ্রেসোর উপর ভিত্তি করে তৈরি অন্যান্য ফ্রেমওয়ার্কের জন্য উপযোগী, যা বিদ্যমান এসপ্রেসো টেস্ট স্যুট চলার সময় ভিউ হায়ারার্কির অবস্থা যাচাই করতে সাহায্য করে। -
ViewMatchers.withContentDescription()resIdওভারলোড
-
- নিয়ম
-
ActivityTestRule: এই রুলটি একটিমাত্র অ্যাক্টিভিটির ফাংশনাল টেস্টিং প্রদান করে। -
UiThreadRuleএবংUiThreadTestঅ্যানোটেশন: এই নিয়মটিUiThreadTestদ্বারা অ্যানোটেড টেস্ট মেথডকে অ্যাপ্লিকেশনের প্রধান থ্রেডে (বা UI থ্রেডে) এক্সিকিউট করার অনুমতি দেয়। -
ServiceTestRule: এই রুলটি একটি সার্ভিসের ফাংশনাল টেস্টিং প্রদান করে।
-
- দৌড়বিদ
-
ApplicationLifecycleCallback: অ্যাপ্লিকেশন লাইফসাইকেল ইভেন্ট নিরীক্ষণের জন্য কলব্যাক - এখন থেকে অ্যান্ড্রয়েড ম্যানিফেস্ট ফাইলে একটি
<meta-data>ট্যাগ ব্যবহার করে সমস্ত রানার আর্গুমেন্টও নির্দিষ্ট করা যাবে।
-
- UIAutomator
-
UiDevice.dumpWindowHierarchy()এখন একটিFileবাOutputStreamগ্রহণ করতে পারে।
-
বাগ সংশোধন
- এসপ্রেসো
- কলামটি খুঁজে না পেলে কার্সার ম্যাচিং এখন
falseরিটার্ন করে, যাতে হ্যামক্রেস্ট পরবর্তী কার্সারে যেতে পারে। -
PreferenceMatcherswithTitleসাথে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এবংswipeRightViewActions - একাধিক উইন্ডো সমর্থন: একটি উন্নত বৈশিষ্ট্য যা সেই নির্দিষ্ট উইন্ডোটি বেছে নেওয়ার সুযোগ দেয়, যেখানে এসপ্রেসো অপারেশনটি চালাবে।
-
TypeTextActionএর উন্নতি : আগে থেকে ফোকাস করা ভিউতে টেক্সট টাইপ করার সুবিধা দেয়, যা টেক্সট যুক্ত করা আরও সহজ করে তোলে। - অসংখ্য বাগ সংশোধন
এসপ্রেসো কন্ট্রিবিউশন লাইব্রেরি
- এই নতুন লাইব্রেরিতে এমন কিছু বৈশিষ্ট্য রয়েছে যা Espresso-কে পরিপূরক করে, কিন্তু মূল লাইব্রেরির অংশ নয়।
-
DrawerLayoutউপর কাজ করার জন্য নতুনDrawerActions: এটি Android Support Library-এর উপর নির্ভরশীল, তাই আমরা এটিকে মূল Espresso লাইব্রেরির বাইরে রাখছি।
নমুনা পরীক্ষা
- এই পরীক্ষাগুলো টেস্ট অ্যাপের সাথে একই প্যাকেজে লাইভে স্থানান্তর করা হয়েছে।
- ডুপ্লিকেট গুয়াভা ডিপেন্ডেন্সিগুলো সরানোর জন্য Maven POM-গুলো সংশোধন করা হয়েছে, তাই এখন
mvn installকাজ করার কথা।