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

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