การสร้างการกําหนดค่า XML แบบโมโนลิธิกรายการเดียวเพื่อกําหนดการทดสอบนั้นไม่เหมาะสําหรับการใช้งานจริงเสมอไป หากต้องการใช้การตั้งค่าบางส่วนซ้ำเพื่อทำการทดสอบที่คล้ายกัน คุณจะต้องคัดลอกและดูแลรักษาไฟล์ 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>
ไฟล์รวมจะใช้งานได้ง่ายกว่าเทมเพลตเนื่องจากไม่ต้องใช้อาร์กิวเมนต์บรรทัดคำสั่ง แต่จะขยาย XML ที่อ้างอิงในแท็ก name
โดยตรง เส้นทางไปยังการกําหนดค่าอาจเป็นแบบสัมบูรณ์หรือสัมพัทธ์ได้ เช่นเดียวกับเทมเพลต อย่างไรก็ตาม สำหรับ includes
เราขอแนะนำให้ใช้เฉพาะเส้นทางสัมพัทธ์เนื่องจากนำไปใช้ใน Tradefed ได้สะดวกกว่า
Absolute Path จะใช้ไม่ได้หากย้าย Tradefed ไปยังเครื่องอื่น
การกําหนดค่าที่ไม่ถูกต้อง
ในกรณีที่มีการกําหนดค่าไม่ถูกต้อง เช่น เมื่อไม่พบ XML เปลี่ยนทดแทน Tradefed จะแสดง ConfigurationException
พร้อมคําอธิบายสิ่งที่ดูเหมือนจะขาดหายไปหรือกําหนดค่าไม่ถูกต้อง