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

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

ขั้นแรก ตรวจสอบให้แน่ใจว่าคุณเข้าใจ การจัดการตัวเลือก ใน Tradefed

การตั้งค่า Suite อธิบายสองชั้นที่มีอยู่ในโครงสร้างชุด:

  • ห้องชุดระดับบนสุด
  • โมดูล

ในบริบทที่ไม่ใช่ 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