টেস্ট রানার হল ইনভোকেশন ফ্লোর এক্সিকিউশন ইউনিট। এই জায়গাতেই পরীক্ষা আসলে চালানো হয়।
ইন্টারফেস
টেস্ট রানার IRemoteTest
ইন্টারফেস-এর মাধ্যমে সংজ্ঞায়িত করা হয়,
যা প্রয়োগ করার জন্য একটি সহজ run পদ্ধতি প্রদান করে, যা
টেস্ট রান করার সময় কল করা হবে।
এটি টেস্ট রানকে সবচেয়ে সহজভাবে সংজ্ঞায়িত করে। কিন্তু বাস্তবে, টেস্ট লেখকদের তাদের টেস্ট সঠিকভাবে লেখার জন্য আরও তথ্যের প্রয়োজন হবে, সাধারণত বিল্ড এবং ডিভাইসের তথ্য। এইসব ক্ষেত্রে নিম্নলিখিত ইন্টারফেসগুলি কাজে আসে।
সাধারণ
এই দুটি ইন্টারফেস আজ সবচেয়ে বেশি ব্যবহার করা হয়, কারণ এগুলি বেশিরভাগ পরীক্ষার প্রাথমিক প্রয়োজনীয়তা পূরণ করে।
- IBuildReceiver
পরীক্ষা সেট-আপ সংক্রান্ত সমস্ত তথ্য ও আর্টিফ্যাক্ট সহ বিল্ড
প্রোভাইডার ধাপে তৈরি করা
IBuildInfoঅবজেক্ট পরীক্ষাকে পেতে দেয়। - IDeviceTest
TF-কে
ITestDeviceঅবজেক্ট পেতে দেয়, যা পরীক্ষা করা হচ্ছে এমন ডিভাইসকে প্রতিনিধিত্ব করে এবং এর সাথে ইন্টার্যাক্ট করার জন্য API প্রদান করে।
উন্নত
টেস্ট হার্নেস ও টেস্ট রানারের মধ্যে আরও জটিল ইন্টার্যাকশনের জন্য অতিরিক্ত ইন্টারফেস আছে:
- ITestFilterReceiver, যা শুধুমাত্র নির্দিষ্ট কিছু পরীক্ষা চালানোর জন্য পরীক্ষাকে ফিল্টারের একটি সেট গ্রহণ করতে দেয় । এটি টেস্টের সাবসেট রান করার ক্ষেত্রে উপযোগী।
- ITestCollector, যা টেস্ট রানারকে আসলে টেস্ট এক্সিকিউট করার পরিবর্তে শুধুমাত্র ড্রাই-রান করার অনুমতি দেয়। এটি সব টেস্ট কেসের তালিকা সংগ্রহ করার ক্ষেত্রে উপযোগী।
আগে থেকে থাকা টেস্ট রানার
বিভিন্ন ধরনের টেস্ট রানার আগে থেকেই আছে, কিছু প্রধান টেস্টের ধরনের জন্য:
- AndroidJUnitTest / InstrumentationTest (associated with AJUR on the device side)
- googletest লাইব্রেরি সহ GTest (ডিভাইস ও হোস্ট সাইড)
- হোস্ট-চালিত টেস্ট (Java টেস্ট যা হোস্টে এক্সিকিউট হয় এবং সেখান থেকে ডিভাইসে কল করে)
- পিওর Java ইউনিট টেস্ট (আমাদের রানার দুটিই করে)
- Python টেস্ট
- বেঞ্চমার্ক লাইব্রেরি ব্যবহার করে Google Benchmark টেস্ট
উপরে উল্লেখ করা ছাড়াও অনেক কাস্টম টেস্ট রানার আছে; এগুলি কিছু ফাংশনাল টেস্টিংয়ের জন্য বিশেষ উদ্দেশ্যে ব্যবহার করা হয়, যেমন বুট টেস্ট।
নতুন টেস্ট রানার লেখা
টেস্ট লেখা বিভাগে নতুন টেস্ট রানার লেখার ব্যাপারে আরও নির্দেশিকা উপলভ্য।