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

การสร้างการกําหนดค่า 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
  • เครื่องมือ/การเทรด/แกน/การทดสอบ/res/การกำหนดค่า
  • 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 ได้สะดวกกว่า เส้นทางสัมบูรณ์จะไม่ถูกต้องหากย้าย Tradefed ไปยังเครื่องอื่น

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

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