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