প্রথমে developer.android.com থেকে আপনার অ্যাপ পরীক্ষা করুন লিঙ্কটি পড়ুন। মনে রাখবেন যে প্ল্যাটফর্ম টেস্টিংয়ে ইনস্ট্রুমেন্টেশন টেস্ট ব্যবহার করার পদ্ধতিতে কিছু পার্থক্য আছে।
সংক্ষেপে, একটি ইন্সট্রুমেন্টেশন টেস্ট am instrument কমান্ডের মাধ্যমে চালু করা একটি বিশেষ টেস্ট এক্সিকিউশন
পরিবেশ প্রদান করে, যেখানে টার্গেট করা
অ্যাপ্লিকেশন প্রসেসটি রিস্টার্ট করা হয় এবং প্রাথমিক অ্যাপ্লিকেশন কন্টেক্সটের সাথে শুরু করা হয়,
এবং অ্যাপ্লিকেশন প্রসেস VM-এর মধ্যে একটি ইন্সট্রুমেন্টেশন থ্রেড শুরু হয়। আপনার
টেস্ট কোড এই ইন্সট্রুমেন্টেশন থ্রেডে এক্সিকিউট করা শুরু হয় এবং
Instrumentation ইনস্ট্যান্স প্রদান করা হয় যা অ্যাপ্লিকেশন কন্টেক্সট
এবং পরীক্ষা করা হচ্ছে এমন অ্যাপ্লিকেশন প্রসেস ম্যানিপুলেট করার জন্য API-তে অ্যাক্সেস প্রদান করে।
মূল ধারণা
- অ্যাপ্লিকেশন প্যাকেজে একটি ইন্সট্রুমেন্টেশন ঘোষণা করতে হবে, সাথে
<instrumentation>ট্যাগটি অ্যাপ্লিকেশন প্যাকেজ ম্যানিফেস্টের<manifest>ট্যাগের মধ্যে নেস্ট করা থাকতে হবে। - একটি অ্যাপ্লিকেশন প্যাকেজ ম্যানিফেস্টে প্রযুক্তিগতভাবে একাধিক
<instrumentation>ট্যাগ থাকতে পারে, যদিও এটি সাধারণত এই ফ্যাশনে ব্যবহৃত হয় না। - প্রতিটি
<instrumentation>-এ এগুলি থাকতেই হবে:- একটি
android:nameঅ্যাট্রিবিউট: এটি টেস্ট অ্যাপ্লিকেশনে অন্তর্ভুক্তInstrumentationসাবক্লাসের নাম হতে হবে, যা সাধারণত ব্যবহৃত টেস্ট রানার, যেমন:android.support.test.runner.AndroidJUnitRunner android:targetPackageঅ্যাট্রিবিউট অবশ্যই সংজ্ঞায়িত করতে হবে। এর ভ্যালু পরীক্ষা করা হচ্ছে এমন অ্যাপ্লিকেশন প্যাকেজে সেট করা উচিত।
- একটি
ধাপের সারসংক্ষেপ
ফ্রেমওয়ার্ক পরিষেবার বিরুদ্ধে হার্মেটিক পরীক্ষার জন্য নিচে সাধারণ ডেস্টিনেশন দেওয়া হল:
frameworks/base/core/tests/coretests frameworks/base/services/tests/servicestestsআপনার কম্পোনেন্টের জন্য একদম নতুন ইন্সট্রুমেন্টেশন মডিউল যোগ করতে চাইলে, দেখুন
আপনি যদি উপরের লোকেশনগুলির মধ্যে কোনও একটিতে পরীক্ষা যোগ করেন, তাহলে আগে থেকে থাকা কনভেনশন অনুসরণ করুন। আপনি নতুন টেস্ট মডিউল সেট-আপ করলে, উপরে উল্লিখিত কোনও একটি লোকেশনে
AndroidManifest.xmlওAndroid.mkসেট-আপ করার প্রক্রিয়া অনুসরণ করুনউদাহরণের জন্য frameworks/base/core/tests/coretests/ দেখুন। মনে রাখবেন, এই লাইনগুলি অতিরিক্ত অ্যাপ ইনস্টল করে:
<option name="test-file-name" value="FrameworksCoreTests.apk" /> <option name="test-file-name" value="BstatsTestApp.apk" />আপনার পরীক্ষা
@SmallTest,@MediumTestবা@LargeTestহিসেবে চিহ্নিত করতে ভুলবেন নাm দিয়ে টেস্ট মডিউল তৈরি করুন, যেমন:
m FrameworksCoreTestsটেস্ট রান করুন:
সবচেয়ে সহজ সমাধান হল, এইভাবে Atest ব্যবহার করা:
atest FrameworksCoreTestsঅথবা আরও জটিল পরীক্ষার জন্য, ট্রেড ফেডারেশন টেস্ট হারনেস ব্যবহার করুন:
m tradefed-all tradefed.sh run template/local_min --template:map test=FrameworksCoreTestsTradefed ব্যবহার না করলে, ম্যানুয়ালি টেস্ট ইনস্টল ও রান করুন:
- জেনারেট করা apk ইনস্টল করুন:
adb install -r ${OUT}/data/app/FrameworksCoreTests/FrameworksCoreTests.apkবিভিন্ন বিকল্পের সাথে পরীক্ষা চালান:
apk-এর সব টেস্ট
adb shell am instrument -w com.android.frameworks.coretests\ /android.support.test.runner.AndroidJUnitRunnerনির্দিষ্ট Java প্যাকেজের অধীনে থাকা সব টেস্ট
adb shell am instrument -w -e package android.animation \ com.android.frameworks.coretests\ /android.support.test.runner.AndroidJUnitRunnerনির্দিষ্ট ক্লাসের অধীনে থাকা সব টেস্ট
adb shell am instrument -w -e class \ android.animation.AnimatorSetEventsTest \ com.android.frameworks.coretests\ /android.support.test.runner.AndroidJUnitRunnerএকটি নির্দিষ্ট পরীক্ষা পদ্ধতি
adb shell am instrument -w -e class \ android.animation.AnimatorSetEventsTest#testCancel \ com.android.frameworks.coretests\ /android.support.test.runner.AndroidJUnitRunner
আপনার টেস্ট JUnit API ব্যবহার করে পাস বা ফেলের ব্যাপারে স্পষ্ট দাবি করতে পারে;
এছাড়াও, কোনও আনক্যাচড ব্যতিক্রমও কার্যকরী ব্যর্থতার কারণ হবে।
পারফর্ম্যান্স মেট্রিক এমিট করতে, আপনার টেস্ট কোড
Instrumentation#sendStatus
কল করে কী-ভ্যালু পেয়ারের তালিকা পাঠাতে পারে। মনে রাখা গুরুত্বপূর্ণ যে:
- মেট্রিক পূর্ণ সংখ্যা বা ফ্লোটিং পয়েন্ট হতে পারে
- সংখ্যা নয় এমন যেকোনও মান বাতিল করা হবে
- আপনার টেস্ট APK, ফাংশনাল টেস্ট বা মেট্রিক টেস্ট হতে পারে, তবে দুটি একসাথে ব্যবহার করা যায় না