เทมเพลตและรวมอยู่ในการกำหนดค่า XML ของ Tradefed

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

ซึ่งเป็นจุดที่แท็ก template และ include ในการกำหนดค่า XML ของ Tradefed มีประโยชน์ ซึ่งจะช่วยให้คุณตั้งค่าตัวยึดตำแหน่งในการกำหนดค่า 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 ตัวอย่างสถานที่ตั้งมีดังนี้

  • tools/tradefederation/core/res/config
  • tools/tradefederation/core/tests/res/config
  • tools/tradedeferation/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>

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

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

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