ส่งตัวเลือกและตัวกรองไปยังชุดโปรแกรมและโมดูล

ก่อนอื่น โปรดทำความเข้าใจการจัดการตัวเลือก ใน Tradefed

การตั้งค่า Suite จะอธิบายเลเยอร์ 2 แบบที่มีอยู่ใน โครงสร้างชุดโปรแกรม:

  • ชุดเครื่องมือระดับบนสุด
  • โมดูล

ในบริบทที่ไม่ใช่ของ Tradefed คุณไม่จำเป็นต้องคำนึงถึงเรื่องนี้ ทุก ไปที่คำขอแบบเต็ม ในบริบทของชุดเครื่องมือ ระบบจะเก็บโมดูลไว้ แยกจากชุดโปรแกรม ตัวเลือกบางอย่างอาจไม่พร้อมใช้งานในระดับนั้น

ส่งตัวเลือกไปยังชุดเครื่องมือระดับบนสุด

ชุดโปรแกรมระดับบนสุดจะทำงานเหมือนกับการกำหนดค่า Standard Tradefed กล่าวคือ รวมถึงโปรแกรมเรียกใช้ชุดโปรแกรมจะได้รับตัวเลือกทั้งหมด การกำหนดค่า Tradefed ที่ไม่ได้มีไว้สำหรับกลุ่ม

ส่งตัวเลือกไปยังโมดูล

โดยค่าเริ่มต้น โมดูลจะไม่ได้รับตัวเลือกที่ส่งผ่านไปยังคำสั่งดังกล่าว ซึ่งต้องได้รับการกำหนดเป้าหมายอย่างชัดเจนเพื่อให้ได้รับตัวเลือกผ่าน ตัวเลือก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 ของคุณซึ่งเป็นส่วนหนึ่งของ เป้าหมายบิลด์ 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