เรียกใช้ XCTest

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

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

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

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

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

Test Lab เรียกใช้การทดสอบหน่วยและการทดสอบ UI โดยใช้เฟรมเวิร์ก XCTest หากต้องการเรียกใช้ XCTest ของแอปใน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

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

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

ขั้นตอนที่ 4: แพ็กเกจแอปและทดสอบการอัปโหลด

  1. หลังจากสร้างการทดสอบสำเร็จแล้ว ให้บีบอัดเป็นไฟล์ ZIP เพื่ออัปโหลดไปยัง 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