הכלי להרצת בדיקות הוא יחידת הביצוע של זרימת הקריאה. כאן מתבצעים הבדיקות בפועל.
ממשקים
הגדרתם את רכיבי ההרצה של הבדיקות באמצעות הממשק IRemoteTest, שכולל את השיטה הפשוטה run
להטמעה, שמופעלת כשהבדיקות אמורות לפעול.
כך אפשר להגדיר את הרצת הבדיקה בצורה הכי פשוטה. אבל בפועל, כותבי הבדיקות יזדקקו למידע נוסף כדי לכתוב את הבדיקות בצורה נכונה, בדרך כלל מידע על הגרסה ועל המכשיר. כאן נכנסים לתמונה הממשקים הבאים.
בסיס
שני הממשקים האלה הם הנפוצים ביותר כיום, כי הם מייצגים את הצרכים הבסיסיים של רוב הבדיקות.
- IBuildReceiver
מאפשר לבדיקה לקבל את אובייקט
IBuildInfo
שנוצר בשלב build provider, שמכיל את כל המידע והארטיפקטים שקשורים להגדרת הבדיקה. - IDeviceTest
מאפשר ל-TF לקבל את האובייקט
ITestDevice
שמייצג את המכשיר שנבדק, ומספק API לאינטראקציה איתו.
הגדרות מתקדמות
יש ממשקים נוספים שמאפשרים אינטראקציה מורכבת יותר בין מסגרת הבדיקה לבין מפעיל הבדיקה:
- ITestFilterReceiver, שמאפשר לבדיקה לקבל קבוצה של מסננים להרצת בדיקות מסוימות בלבד. האפשרות הזו שימושית כשרוצים להריץ קבוצת משנה של הבדיקות.
- ITestCollector, שמאפשר להריץ בדיקה רק כדי לבדוק אם היא תעבור, במקום להריץ אותה בפועל. האפשרות הזו שימושית לאיסוף רשימה של כל תרחישי הבדיקה.
כלי הרצה קיימים של בדיקות
כבר קיימים מגוון של מריצי בדיקות, חלקם לסוגים עיקריים של בדיקות:
- AndroidJUnitTest / InstrumentationTest (משויך ל-AJUR בצד המכשיר)
- GTest (בצד המכשיר ובצד המארח) עם ספריית googletest
- בדיקות מבוססות-מארח (בדיקות Java שמופעלות במארח וקוראות למכשיר משם)
- בדיקות יחידה ב-Java טהורה (הכלי שלנו מבצע את שתי הבדיקות)
- בדיקות Python
- בדיקות השוואה לשוק של Google עם ספריית השוואה לשוק
קיימים מספר רב של מריצי בדיקות מותאמים אישית בנוסף לאלה שצוינו למעלה. הם משמשים למטרות מיוחדות בבדיקות פונקציונליות מסוימות, למשל Boot Test.
כתיבת כלי חדש להרצת בדיקות
הנחיות נוספות לכתיבת כלי חדש להרצת בדיקות זמינות בקטע בנושא כתיבת בדיקות.