העברת אפשרויות ומסננים לחבילה ולמודולים

קודם כול, חשוב להבין את אופן הטיפול באפשרויות ב-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