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