บทความนี้จะอธิบายวิธีเตรียม XCTest สำหรับการทดสอบใน Firebase Test Lab
ขั้นตอนที่ 1: กำหนดค่าตำแหน่งข้อมูลที่ได้มาของโปรเจ็กต์
Xcode จะวางอาร์ติแฟกต์ iOS ที่คอมไพล์แล้ว รวมถึงการทดสอบที่คุณสร้างไว้ในไดเรกทอรีข้อมูลที่ได้มา คุณสามารถเก็บตำแหน่งเริ่มต้นของไดเรกทอรีนั้นไว้ได้ หากต้องการ แต่โดยทั่วไปแล้วการเลือกตำแหน่งที่เข้าถึงไฟล์ได้ง่ายกว่ามักจะเป็นประโยชน์ สำหรับไฟล์ โดยเฉพาะอย่างยิ่งหากคุณจะทำการทดสอบด้วย Test Lab บ่อยๆ:
- เปิดโปรเจ็กต์ใน Xcode
- ในแถบเมนู macOS ให้เลือก ไฟล์ > การตั้งค่าโปรเจ็กต์...
- เปลี่ยนเมนูแบบเลื่อนลงข้อมูลที่ได้มา จาก ตำแหน่งเริ่มต้น เป็น ตำแหน่งที่กำหนดเอง
- ในช่องด้านล่างเมนูแบบเลื่อนลง ให้เลือกตำแหน่งที่ Xcode จะส่งออก การทดสอบ (นี่คือ FOLDER_WITH_TEST_OUTPUT)
ขั้นตอนที่ 2: สร้างไฟล์ทดสอบทั่วไป
Test Lab จะเรียกใช้การทดสอบหน่วยและการทดสอบ UI โดยใช้ XCTest เฟรมเวิร์ก หากต้องการเรียกใช้ XCTest ของแอปในอุปกรณ์ Test Lab ให้สร้างแอปสำหรับการทดสอบในอุปกรณ์ iOS ทั่วไปโดยทำดังนี้
- จากเมนูแบบเลื่อนลงของอุปกรณ์ที่ด้านบนของหน้าต่างพื้นที่ทำงาน Xcode ให้เลือก อุปกรณ์ iOS ทั่วไป
- ในแถบเมนู 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: ลงชื่อการทดสอบและยืนยัน
ตรวจสอบว่าอาร์ติแฟกต์ทั้งหมดในแอปและการทดสอบได้รับการลงชื่อแล้ว เช่น คุณสามารถทำได้ผ่าน Xcode โดยระบุการตั้งค่าการลงชื่อ เช่น โปรไฟล์การจัดสรรและข้อมูลระบุตัวตน ดูข้อมูลเพิ่มเติมได้ที่ การลงชื่อโค้ดของ Apple
ยืนยันลายเซ็นของแอปโดยเรียกใช้
codesign --verify --deep --verbose /path/to/MyApp.appโดยที่ "MyApp" คือชื่อของแอปภายในโฟลเดอร์ที่แตกไฟล์แล้ว ซึ่งจะแตกต่างกันไปในแต่ละโปรเจ็กต์ เอาต์พุตที่คาดไว้คือMyApp.app: valid on diskหากคุณเรียกใช้ XCUITest คุณจะต้องยืนยันการทดสอบและตัวเรียกใช้โดยเรียกใช้
codesign --verify --deep --verbose /path/to/MyTest-Runner.appโดยที่ "MyTest" คือชื่อของตัวเรียกใช้ภายในโฟลเดอร์ที่แตกไฟล์แล้ว ซึ่งจะแตกต่างกันไปในแต่ละโปรเจ็กต์ เอาต์พุตที่คาดไว้คือMyTest-Runner.app: valid on disk
ขั้นตอนที่ 4: แพ็กเกจแอปและการทดสอบสำหรับการอัปโหลด
หลังจากสร้างการทดสอบสำเร็จแล้ว ให้บีบอัดการทดสอบเป็นไฟล์ ZIP เพื่ออัปโหลดไปยัง Test Lab โดยทำดังนี้
cd FOLDER_WITH_TEST_OUTPUT/Build/Products : \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
นอกจากนี้ คุณยังแพ็กเกจการทดสอบได้ด้วยการบีบอัดไฟล์ทดสอบด้วยตนเองโดยทำดังนี้
เปิด Finder แล้วไปที่
FOLDER_WITH_TEST_OUTPUTเปิดโฟลเดอร์ที่มีชื่อโปรเจ็กต์เป็นคำนำหน้า แล้วไปที่โฟลเดอร์
Build/Productsภายในเลือกโฟลเดอร์
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