เทมเพลตและรวมไว้ในการกำหนดค่า Tradefed XML

การสร้างการกำหนดค่า XML แบบเสาหินเพื่อกำหนดการทดสอบอาจใช้ไม่ได้จริงเสมอไป หากคุณต้องการใช้ส่วนหนึ่งของการตั้งค่าซ้ำเพื่อทำการทดสอบที่คล้ายกัน คุณจะถูกบังคับให้คัดลอกและดูแลรักษาไฟล์ XML ขนาดใหญ่สองไฟล์

นี่คือจุดที่ template และ include แท็กในข้อกำหนดการกำหนดค่า Tradefed XML มีประโยชน์ ช่วยให้คุณสามารถตั้งค่าตัวยึดตำแหน่งในการกำหนดค่า XML บางส่วนเพื่อเพิ่มส่วนหนึ่งของการกำหนดค่า XML อื่น

ตัวอย่างคำจำกัดความของเทมเพลต

<configuration description="Common base configuration for local runs with minimum overhead">
    <build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />

    <template-include name="preparers" default="empty" />

    <template-include name="test" default="empty" />

    <template-include name="reporters" default="empty" />
</configuration>

เทมเพลตคือพื้นที่ที่สำรองไว้ซึ่งมี name สำหรับอ้างอิง และช่อง default ที่ไม่บังคับ ฟิลด์เริ่มต้นจะกำหนด XML การแทนที่เริ่มต้นที่ควรใช้

ในการแทนที่เทมเพลตสำหรับการกำหนดค่าที่กำหนด จำเป็นต้องเพิ่มพารามิเตอร์คำสั่งต่อไปนี้ในบรรทัดคำสั่ง:

--template:map <name of template>=<replacement XML config path>

--template:map preparers=empty

ตัวอย่างเช่น:

<template-include name="preparers" default="empty" />

การอ้างอิง empty ในกรณีนี้อ้างอิงถึงการกำหนดค่า empty.xml ที่ไม่มีสิ่งใดเลย เราใช้มันเป็นข้อมูลอ้างอิงเพื่อ แทนที่ด้วยสิ่งใดเลย

เส้นทางของการกำหนดค่า XML อาจเป็นแบบสัมบูรณ์หรือสัมพันธ์กับโฟลเดอร์ res/config ภายในทรัพยากร JAR ของ Tradefed นี่คือที่ตั้งบางส่วน:

  • เครื่องมือ/สหพันธ์การค้า/core/res/config
  • เครื่องมือ/สหพันธ์การค้า/หลัก/การทดสอบ/res/config
  • เครื่องมือ/การค้าขาย/contrib/res/config

ตัวอย่างคำจำกัดความของการรวม

<configuration description="Common base configuration for local runs with minimum overhead">
    <build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />

    <include name="empty"/>
</configuration>

การรวมนั้นง่ายกว่าเทมเพลตเนื่องจากไม่ต้องการอาร์กิวเมนต์บรรทัดคำสั่ง พวกเขาขยาย XML อ้างอิงโดยตรงในแท็ก name เช่นเดียวกับเทมเพลต เส้นทางไปยังการกำหนดค่าอาจเป็นแบบสัมบูรณ์หรือแบบสัมพันธ์ก็ได้ อย่างไรก็ตาม สำหรับ includes เราขอแนะนำให้ใช้เฉพาะเส้นทางสัมพัทธ์เท่านั้น เนื่องจากเส้นทางเหล่านี้สามารถพกพาได้มากกว่าใน Tradefed เส้นทางที่แน่นอนจะไม่ถูกต้องหาก Tradefed ถูกย้ายไปยังเครื่องอื่น

การกำหนดค่าไม่ถูกต้อง

ในกรณีที่มีการกำหนดค่าไม่ถูกต้อง เช่น เมื่อไม่พบ XML ทดแทน Tradefed จะส่ง ConfigurationException พร้อมคำอธิบายของสิ่งที่ดูเหมือนว่าจะหายไปหรือกำหนดค่าไม่ถูกต้อง