In diesem Leitfaden wird beschrieben, wie Sie einen XCTest für Tests in Firebase Test Lab vorbereiten.
Schritt 1: Speicherort für abgeleitete Daten Ihres Projekts konfigurieren
Xcode speichert kompilierte iOS-Artefakte, einschließlich aller von Ihnen erstellten Tests, in einem Verzeichnis für abgeleitete Daten. Sie können den Standardspeicherort für dieses Verzeichnis beibehalten, wenn Sie möchten. Es ist jedoch oft hilfreich, einen leichter zugänglichen Ort für die Dateien auszuwählen, insbesondere wenn Sie häufig Tests mit Test Lab ausführen:
- Öffnen Sie Ihr Projekt in Xcode.
- Wählen Sie in der macOS-Menüleiste Datei > Projekteinstellungen… aus.
- Ändern Sie im Drop-down-Menü Abgeleitete Daten die Option Standardspeicherort in Benutzerdefinierter Speicherort.
- Wählen Sie im Feld unter dem Drop-down-Menü einen Speicherort für die Ausgabe Ihrer Tests durch Xcode aus. (Dies ist Ihre FOLDER_WITH_TEST_OUTPUT)
Schritt 2: Allgemeine Testdatei erstellen
Test Lab führt Unit-Tests und UI-Tests mit dem XCTest-Framework aus. Wenn Sie die XCTests Ihrer App auf Test Lab-Geräten ausführen möchten, erstellen Sie sie für Tests auf einem generischen iOS-Gerät:
- Wählen Sie im Drop-down-Menü für Geräte oben im Xcode-Arbeitsbereichsfenster die Option Generic iOS Device aus.
- Wählen Sie in der macOS-Menüleiste Product > Build For > Testing aus.
Alternativ können Sie den XCTest über die Befehlszeile erstellen. Verwenden Sie den folgenden Befehl in einem Terminal:
Projekt
xcodebuild -project PATH/TO/YOUR_WORKSPACE/PROJECT_NAME.xcodeproj \ -scheme YOUR_SCHEME \ -derivedDataPath FOLDER_WITH_TEST_OUTPUT \ -sdk iphoneos build-for-testing
Arbeitsbereich
xcodebuild -workspace PATH/TO/YOUR_WORKSPACE.xcworkspace \ -scheme YOUR_SCHEME \ -derivedDataPath FOLDER_WITH_TEST_OUTPUT \ -sdk iphoneos build-for-testing
Schritt 3: Test signieren und bestätigen
Achten Sie darauf, dass alle Artefakte in der App und im Test signiert sind. Sie können dies beispielsweise über Xcode tun, indem Sie Signierungseinstellungen wie das Bereitstellungsprofil und die Identität angeben. Weitere Informationen finden Sie unter Apple Code Signing.
Prüfen Sie die App-Signatur, indem Sie
codesign --verify --deep --verbose /path/to/MyApp.appausführen, wobei „MyApp“ der Name der App im entpackten Ordner ist. Das ist von Projekt zu Projekt unterschiedlich. Die erwartete Ausgabe istMyApp.app: valid on disk.Wenn Sie einen XCUITest ausführen, müssen Sie den Test und den Runner mit
codesign --verify --deep --verbose /path/to/MyTest-Runner.appverifizieren, wobei „MyTest“ der Name des Runners im entpackten Ordner ist. Dies ist von Projekt zu Projekt unterschiedlich. Die erwartete Ausgabe istMyTest-Runner.app: valid on disk.
Schritt 4: App verpacken und Upload testen
Nachdem der Test erfolgreich erstellt wurde, komprimieren Sie ihn für den Upload in Test Lab:
cd FOLDER_WITH_TEST_OUTPUT/Build/Products : \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
Sie können den Test auch manuell komprimieren:
Öffnen Sie den Finder und rufen Sie
FOLDER_WITH_TEST_OUTPUTauf.Öffnen Sie den Ordner, der den Namen Ihres Projekts als Präfix hat, und rufen Sie dann den Ordner
Build/Productsdarin auf.Wählen Sie die Ordner
Debug-iphoneosundYOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrunaus und komprimieren Sie sie.
Schritt 5: (Optional) Test lokal ausführen
Bevor Sie den Test mit Test Lab ausführen, können Sie ihn lokal mit einem über USB verbundenen Gerät ausführen, um das Verhalten zu prüfen:
xcodebuild test-without-building \
-xctestrun "Derived Data/Build/Products/YOUR_SCHEME.xctestrun" \
-destination id=your-phone-idNächste Schritte
Laden Sie Ihren Test in der Firebase-Konsole oder der gcloud CLI hoch und führen Sie ihn aus.