קודם כול, חשוב להבין את הטיפול באפשרויות ב-Tradefed.
בקטע הגדרת חבילת שירות מתוארות שתי השכבות במבנה החבילה:
- חבילת השירות ברמה העליונה
- המודולים
בהקשר של עסקאות שלא מגיעות לידי ביטוי בעסקה, לא צריך לחשוב על זה. כל אפשרות מובילה להפעלה המלאה. בהקשר של חבילה, המודולים מבודדים מהחבילה, כך שלא כל האפשרויות זמינות ברמה שלהם.
העברת אפשרויות לחבילה ברמה העליונה
החבילה ברמה העליונה מתנהגת כמו הגדרות אישיות רגילות (Trepaid): ההגדרות האישיות המלאות, כולל רכיב ההרצה של החבילה, מקבלות את כל האפשרויות, כמו הגדרות שנוצרות ללא חבילה.
העברת האפשרויות למודולים
כברירת מחדל, המודולים לא מקבלים אף אחת מהאפשרויות שהועברו לפקודה.
כדי שהמשתמשים יקבלו את האפשרויות האלה דרך האפשרות 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