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

ขั้นแรก ตรวจสอบให้แน่ใจว่าคุณเข้าใจ การจัดการออปชั่น ใน 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