קודם כול, חשוב להבין את הטיפול באפשרויות ב-Tradefed.
בקטע הגדרת חבילת שירות מתוארות שתי השכבות במבנה החבילה:
- הסוויטה ברמה העליונה
- המודולים
בהקשר של Tradefed ללא חבילת שירותים, אין צורך לחשוב על זה. כל אפשרות עוברת להפעלה המלאה. בהקשר של חבילה, המודולים נשמרים מבודדים מהחבילה; כך שלא כל האפשרויות זמינות ברמה שלהם.
אפשרויות גישה לסוויטה שברמה העליונה
חבילת ה-suite ברמה העליונה פועלת כמו הגדרה רגילה של Tradefed: ההגדרה המלאה, כולל הכלי להרצת החבילה, מקבלת את כל האפשרויות כמו הגדרה של Tradefed ללא חבילת suite.
העברת האפשרויות למודולים
מודולים כברירת מחדל לא מקבלים אף אחת מהאפשרויות שמועברות לפקודה.
צריך לטרגט אותם באופן מפורש כדי לקבל את האפשרויות דרך
אפשרות module-arg
. בידוד האפשרויות של המודולים גורם לניפוי באגים
יותר קל.
דוגמה:
cts-tradefed run cts --module-arg <module-name>:<option-name>:<option-value>
cts-tradefed run cts --module-arg CtsGestureTestCases:collect-tests-only:true
התחביר מבטיח שהאפשרות הזו תישלח למודול המטורגט.
יש דרכים נוספות להעביר אפשרויות למודולים כמו test-arg
,
מאפשר להעביר אפשרויות למפעיל הבדיקה של כל מודול בהתבסס על
הסוג או הכיתה.
דוגמה:
cts-tradefed run cts --test-arg <test-class>:<option-name>:<option-value>
cts-tradefed run cts --test-arg com.android.tradefed.testtype.JarHosttest:collect-tests-only:true
התחביר לא מטרגט מודול מסוים, אלא את כל מנהלי הבדיקות של הכיתה הנתונה. test-arg
מתייחס רק להטמעות של IRemoteTest כמקבל פוטנציאלי של האפשרויות.
אפשרויות העברה לקורס בדיקה של Java ב-Java_test_host
אם מוסיפים @Option
לכיתה לבדיקה ב-Java כחלק מטרגט build של java_test_host, צריך להשתמש בקוד הבא כדי להחדיר את האפשרות הזו:
cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>
בהקשר הזה, האפשרות set-option היא האפשרות של רכיב ההרצה של HostTest מתוך טווח הבדיקה. שעוטף את המחלקות של Java כדי להפעיל אותן.
אם היעד של קובץ ה-jar לאפשרויות מכיל כמה כיתות בדיקה, כברירת מחדל, כולן אמורות לכלול את האפשרות @option או להשתמש בתחביר הבא כדי לטרגט לכיתה אחת:
cts-tradefed run cts --module-arg <module-name>:set-option:<class-name>:<option-name>:<option-value>
העברת הפילטרים לחבילה
כדי לסנן בדיקות מסוימות מחבילה, אנחנו משתמשים ב---include-filter
וב---exclude-filter
כדי לאלץ הכללה או החרגה של בדיקה או מודול מסוימים, בהתאמה. להחרגה יש עדיפות.
הן משתמשות בפורמט הזה: [abi] <module-name> [test name]
לדוגמה:
--include-filter CtsGestureTestCases
--include-filter armeabi-v7a CtsGestureTestCases
--include-filter armeabi-v7a CtsGestureTestCases android.gesture.cts.GestureTest#testGetStrokes