โมดูลการทดสอบบางรายการอาจต้องมีการตั้งค่าและขั้นตอนการเลิกใช้งานที่กําหนดเอง ซึ่งทําภายในเฟรมทดสอบไม่ได้ ตัวอย่างทั่วไปอาจรวมถึง
- ติดตั้ง apk อื่นๆ (นอกเหนือจาก apk ทดสอบ)
- พุชไฟล์บางส่วนไปยังอุปกรณ์
- เรียกใช้คำสั่ง (เช่น adb shell pm ...)
ที่ผ่านมา ทีมคอมโพเนนต์มักจะใช้การเขียนการทดสอบฝั่งโฮสต์ ดำเนินการดังกล่าว ซึ่งต้องอาศัยความเข้าใจในการใช้ประโยชน์จากสหพันธ์การค้า และโดยปกติจะเพิ่มความซับซ้อนของโมดูลทดสอบ
การยืมจาก CTS เราได้เปิดตัวแนวคิดของการกำหนดค่าโมดูลการทดสอบเพื่อสนับสนุน ดังกล่าว รายการงานทั่วไปข้างต้นสามารถทำได้ด้วยแท็กเพียง 2-3 บรรทัด การกำหนดค่า เพื่อความยืดหยุ่นสูงสุด คุณสามารถใช้เป้าหมายของคุณเอง เตรียมพร้อมตามที่ ITargetPreparer กำหนด หรือ ITargetCleaner และกำหนดค่าให้มีการใช้ในการกำหนดค่าโมดูลการทดสอบของคุณเอง
การกำหนดค่าโมดูลทดสอบสำหรับโมดูลทดสอบคือไฟล์ XML ที่จำเป็นที่เพิ่มไว้ทางด้านบน โฟลเดอร์แหล่งที่มาของโมดูลระดับ ชื่อว่า "AndroidTest.xml" โดย XML มีรูปแบบดังต่อไปนี้ ของไฟล์การกำหนดค่าที่ใช้โดยระบบควบคุมการทำงานอัตโนมัติสำหรับการทดสอบของสมาพันธ์การค้า ปัจจุบันแท็กหลักที่จัดการผ่านการกำหนดค่าโมดูลทดสอบคือแท็ก "target_preparer" และ "test"
ผู้เตรียมเป้าหมาย
แท็ก “target_preparer” เป็นชื่อที่ใช้ระบุตัวเตรียมเป้าหมาย (โปรดดู ITargetPreparer) ที่เสนอวิธีการตั้งค่า ซึ่งจะเรียกใช้ก่อนที่จะเรียกใช้โมดูลทดสอบ สำหรับการทดสอบ และหากคลาสที่อ้างอิงในแท็ก “target_preparer” ด้วย implements ITargetCleaner ระบบจะเรียกใช้เมธอดการแยกส่วนหลังจากโมดูลทดสอบเสร็จสิ้น
หากต้องการใช้การกำหนดค่าโมดูลทั่วไปในตัว ให้เพิ่มไฟล์ใหม่ "AndroidTest.xml" ที่ โฟลเดอร์ระดับบนสุดของโมดูลทดสอบ แล้วป้อนข้อมูลต่อไปนี้ เนื้อหา:
<?xml version="1.0" encoding="utf-8"?>
<!-- [insert standard AOSP copyright here] -->
<configuration description="Test module config for Foo">
<!-- insert options here -->
</configuration>
ตัวอย่างเช่น เราอาจเพิ่มแท็กตัวเลือกต่อไปนี้ (ที่ความคิดเห็น "แทรก" ด้านบน)
<target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
<option name="run-command" value="settings put secure accessibility_enabled 1" />
<option name="teardown-command" value="settings put secure accessibility_enabled 0" />
</target_preparer>
ตัวเลือกนี้จะกำหนดค่าชุดทดสอบให้ทำสิ่งต่อไปนี้
- before test module is invoked, execute shell command “settings put secure accessibility_enabled 1” on device
- หลังจากโมดูลทดสอบเสร็จสิ้น ให้เรียกใช้คำสั่ง Shell "การตั้งค่าใส่ความปลอดภัย Accessibility_enabled 0 นิ้ว
ในตัวอย่างนี้ จะมีการเปิด/ปิดใช้การเข้าถึงก่อน/หลัง การดำเนินการของโมดูลทดสอบตามลำดับ ตัวอย่างง่ายๆ ที่สาธิตให้เห็นก็คือ ที่จำเป็นต่อการอธิบายรายละเอียดเพิ่มเติมเกี่ยวกับวิธีใช้แท็ก "ตัวเลือก" ดังที่แสดงด้านบน แท็กสามารถมีแอตทริบิวต์ได้ 2 รายการ ได้แก่ ชื่อ ค่า แอตทริบิวต์ name ต้องอ้างอิงถึง หนึ่งในตัวเลือกที่ผู้จัดเตรียมเสนอ
วัตถุประสงค์ที่แน่นอนของฟิลด์ค่าจะขึ้นอยู่กับวิธีที่ผู้เตรียมกำหนด ตัวเลือก: อาจเป็นสตริง ตัวเลข บูลีน หรือแม้กระทั่งเส้นทางของไฟล์ สรุปของผู้เตรียมเป้าหมายทั่วไป 3 ข้อมีดังนี้
ชื่อคลาส: PushFilePreparer
- ชื่อย่อ: push-file
- ฟังก์ชั่น: พุชไฟล์ที่กำหนดเองภายใต้โฟลเดอร์กรอบการทดสอบไปยัง ปลายทางบนอุปกรณ์
- notes:
- เครื่องมือเตรียมการนี้สามารถพุชจากโฟลเดอร์หนึ่งไปอีกโฟลเดอร์หนึ่ง หรือหนึ่งไฟล์ไปยังไฟล์ นั่น คุณจะพุชไฟล์ไว้ในโฟลเดอร์ในอุปกรณ์ไม่ได้ และต้องดำเนินการต่อไปนี้ ระบุชื่อไฟล์ปลายทางในโฟลเดอร์นั้นด้วย
- ตัวเลือก ได้แก่
- push-file: Push-spec ระบุไฟล์ในเครื่องไปยังเส้นทาง ตำแหน่งที่ควรพุชในอุปกรณ์ ใช้ซ้ำได้ หากหลาย มีการกำหนดค่าให้พุชไฟล์ไปยังเส้นทางระยะไกลเดียวกัน ก็จะมีพุชล่าสุด
- push: (เลิกใช้งาน) ข้อกำหนดพุชที่มีรูปแบบเป็น
"
/path/to/srcfile.txt->/path/to/destfile.txt
" หรือ '/path/to/srcfile.txt->/path/to/destdir/
' อาจซ้ำกัน เส้นทางนี้อาจสัมพันธ์กับไดเรกทอรีของโมดูลทดสอบหรือ ของไดเรกทอรีนั้นๆ - post-push: คำสั่งที่จะเรียกใช้ในอุปกรณ์ (ที่มี "
adb shell <your command>
") หลังจากพยายามพุชทั้งหมดแล้ว การใช้งานทั่วไป จะใช้ chmod เพื่อขอสิทธิ์
ชื่อคลาส: InstallApkSetup
- ชื่อย่อ:install-apk
- function: พุชไฟล์ apk ที่กำหนดเองไปยังปลายทางใน อุปกรณ์
- ตัวเลือกดังต่อไปนี้
- test-file-name: ชื่อของ apk ที่จะติดตั้งใน อุปกรณ์
- install-arg: อาร์กิวเมนต์เพิ่มเติมที่จะส่งไปยัง pm install คำสั่งโดยรวมเครื่องหมายขีดกลางนำหน้า เช่น “-d" อาจแสดงซ้ำ
ชื่อคลาส: RunCommandTargetPreparer
- ชื่อย่อ: run-command
- function: เรียกใช้คำสั่ง Shell ที่กำหนดเองก่อนหรือหลังการทดสอบ การดำเนินการของโมดูล
- options:
- run-command: คำสั่ง Shell adb ที่จะเรียกใช้ อาจแสดงซ้ำ
- teardown-command: คำสั่งเชลล์ adb ที่จะเรียกใช้ระหว่างเฟส teardown อาจแสดงซ้ำ
คลาสการสอบ
คลาสทดสอบคือคลาส Trade Federation ที่จะใช้ในการทดสอบ
<test class="com.android.tradefed.testtype.AndroidJUnitTest">
<option name="package" value="android.test.example.helloworld"/>
<option name="runner" value="android.support.test.runner.AndroidJUnitRunner"/>
</test>
ชั้นเรียนทดสอบทั่วไป 3 คลาสมีดังนี้
ชื่อคลาส: GTest
- ชื่อย่อ: gtest
- ฟังก์ชัน: การทดสอบที่เรียกใช้แพ็กเกจการทดสอบแบบเนทีฟในอุปกรณ์ที่กำหนด
- ตัวเลือกดังต่อไปนี้
- native-test-device-path: เส้นทางในอุปกรณ์ที่มีการทดสอบเนทีฟ
ชื่อคลาส: InstrumentationTest
- ชื่อย่อ: การวัด
- ฟังก์ชัน: การทดสอบที่เรียกใช้แพ็กเกจการทดสอบการใช้เครื่องมือในอุปกรณ์ที่กำหนด
- ตัวเลือกดังต่อไปนี้
- แพ็กเกจ: ชื่อแพ็กเกจ Manifest ของแอปพลิเคชันทดสอบ Android ที่จะเรียกใช้
- class: ชื่อคลาสการทดสอบที่จะเรียกใช้
- method: ชื่อวิธีทดสอบที่จะเรียกใช้
ชื่อคลาส: AndroidJUnitTest
- ฟังก์ชัน: การทดสอบที่เรียกใช้แพ็กเกจการทดสอบการใช้เครื่องมือใน อุปกรณ์ที่ใช้ android.support.test.runner.AndroidJUnitRunner นี่คือวิธีหลักในการดำเนินการทดสอบการใช้เครื่องมือ