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