เรียกใช้ XCTest

คู่มือนี้อธิบายวิธีการเตรียม XCTest สำหรับการทดสอบใน Firebase Test Lab

ขั้นตอนที่ 1: กำหนดค่าตำแหน่งข้อมูลที่ได้รับของโปรเจ็กต์

Xcode จะวางอาร์ติแฟกต์ iOS ที่คอมไพล์ไว้ รวมถึงการทดสอบที่คุณสร้างในไฟล์ Derived ไดเรกทอรีข้อมูล สามารถใช้ตำแหน่งเริ่มต้นสำหรับไดเรกทอรีนั้น หากต้องการ แต่การเลือกสถานที่ที่เข้าถึงได้ง่ายกว่านั้นก็มีประโยชน์เช่นกัน โดยเฉพาะในกรณีที่คุณจะทำการทดสอบกับ Test Lab บ่อยครั้ง:

  1. เปิดโปรเจ็กต์ใน Xcode
  2. ในแถบเมนู macOS ให้เลือก ไฟล์ > การตั้งค่าโปรเจ็กต์...
  3. เปลี่ยนเมนูแบบเลื่อนลงข้อมูลที่ได้รับจาก ตำแหน่งเริ่มต้นเป็นตำแหน่งที่กำหนดเอง
  4. ในช่องใต้เมนูแบบเลื่อนลง ให้เลือกตำแหน่งที่จะให้ Xcode เอาต์พุต การทดสอบได้อีกด้วย (นี่คือ FOLDER_WITH_TEST_OUTPUT)

ขั้นตอนที่ 2: สร้างไฟล์ทดสอบทั่วไป

Test Lab เรียกใช้การทดสอบหน่วยและการทดสอบ UI โดยใช้ XCTest ในการเรียกใช้ XCTests ของแอปในอุปกรณ์ Test Lab ให้สร้างแอปนี้สำหรับการทดสอบ อุปกรณ์ iOS ทั่วไป:

  1. จากเมนูแบบเลื่อนลงของอุปกรณ์ที่ด้านบนของหน้าต่างพื้นที่ทำงาน Xcode ให้เลือก อุปกรณ์ iOS ทั่วไป
  2. ในแถบเมนู macOS ให้เลือก ผลิตภัณฑ์ > สร้างมาเพื่อ > การทดสอบ

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

โปรเจ็กต์

xcodebuild -project PATH/TO/YOUR_WORKSPACE/YOUR_PROJECT.xcodeproj \
   -scheme YOUR_SCHEME \
   -derivedDataPath FOLDER_WITH_TEST_OUTPUT \
   -sdk iphoneos build-for-testing

พื้นที่ทำงาน

xcodebuild -workspace PATH/TO/YOUR_WORKSPACE.xcworkspace \
   -scheme YOUR_SCHEME \
   -derivedDataPath FOLDER_WITH_TEST_OUTPUT \
   -sdk iphoneos build-for-testing

ขั้นตอนที่ 3: ลงนามในการทดสอบและยืนยัน

  1. ตรวจสอบว่าอาร์ติแฟกต์ทั้งหมดในแอปและการทดสอบลงชื่อแล้ว ตัวอย่างเช่น คุณสามารถ ซึ่งทำได้ผ่านทาง Xcode ด้วยการระบุการตั้งค่าการลงชื่อ เช่น โปรไฟล์การจัดสรร และอัตลักษณ์ สำหรับข้อมูลเพิ่มเติม โปรดดู Apple Code Signing

  2. ยืนยันลายเซ็นแอปโดยการเรียกใช้ codesign --verify --deep --verbose /path/to/MyApp.app ที่มี "แอปของฉัน" คือ ชื่อแอปภายในโฟลเดอร์ที่แตกไฟล์แล้ว ซึ่งจะแตกต่างกันไปตามแต่ละโปรเจ็กต์ เอาต์พุตที่คาดไว้คือ MyApp.app: valid on disk

  3. หากคุณกำลังใช้งาน XCUITest คุณต้องยืนยันการทดสอบและตัวเรียกใช้ โดยการเรียกใช้ codesign --verify --deep --verbose /path/to/MyTest-Runner.app โดยที่ "MyTest" คือชื่อของตัววิ่งภายในโฟลเดอร์ที่แตกไฟล์แล้ว (unzip) ซึ่งจะแตกต่างกันไปตาม แต่ละโปรเจ็กต์ เอาต์พุตที่คาดไว้คือ MyTest-Runner.app: valid on disk

ขั้นตอนที่ 4: รวมแอปและทดสอบสำหรับการอัปโหลด

  1. หลังจากสร้างการทดสอบสำเร็จแล้ว ให้บีบอัดเพื่ออัปโหลดไปยัง Test Lab ดังนี้

    cd FOLDER_WITH_TEST_OUTPUT/Build/Products : \
    zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
    

นอกจากนี้ คุณยังจัดแพ็กเกจการทดสอบได้โดยบีบอัดไฟล์ทดสอบด้วยตนเองดังนี้

  1. เปิด Finder และไปยัง FOLDER_WITH_TEST_OUTPUT.

  2. เปิดโฟลเดอร์ที่มีชื่อโปรเจ็กต์เป็นคํานําหน้า จากนั้นไปที่ ภายใน Build/Products โฟลเดอร์

  3. เลือกโฟลเดอร์ Debug-iphoneos และ YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun แล้วบีบอัด

ขั้นตอนที่ 5: (ไม่บังคับ) ทำการทดสอบภายในเครื่อง

ก่อนที่จะทำการทดสอบด้วย Test Lab คุณเรียกใช้ภายในเครื่องได้ด้วย อุปกรณ์ที่เชื่อมต่อ USB เพื่อตรวจสอบคุณภาพ ลักษณะการทำงาน

xcodebuild test-without-building \
    -xctestrun "Derived Data/Build/Products/YOUR_SCHEME.xctestrun" \
    -destination id=your-phone-id

ขั้นตอนถัดไป

อัปโหลดและทำการทดสอบในคอนโซล Firebase หรือ gcloud CLI