In dieser Anleitung 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 platziert kompilierte iOS-Artefakte, einschließlich aller Tests, die Sie erstellen, in einem Derived Data-Verzeichnis. Sie können den Standardspeicherort für dieses Verzeichnis beibehalten, aber es ist oft hilfreich, einen leichter zugänglichen Ort für die Dateien auszuwählen, insbesondere wenn Sie häufig Tests mit Test Lab durchführen:
- Öffnen Sie Ihr Projekt in Xcode.
- Wählen Sie in der macOS-Menüleiste Datei > Projekteinstellungen… aus.
- Ändern Sie das Drop-down-Menü Abgeleitete Daten von Standardspeicherort in Benutzerdefinierter Speicherort.
- Wählen Sie im Feld unter dem Drop-down-Menü einen Speicherort aus, an dem Xcode Ihre Tests ausgeben soll. (Das ist dein FOLDER_WITH_TEST_OUTPUT)
Schritt 2: Allgemeine Testdatei erstellen
Test Lab führt Unit- 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-Arbeitsbereichfenster Generic iOS Device (Allgemeines iOS-Gerät) aus.
- Wählen Sie in der macOS-Menüleiste Produkt > Erstellen für > Test aus.
Alternativ können Sie Ihren XCTest über die Befehlszeile erstellen. Verwenden Sie den folgenden Befehl in einem Terminal:
Projekt
xcodebuild -project PATH/TO/YOUR_WORKSPACE/YOUR_PROJECT.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
Alle Artefakte in der App und im Test müssen signiert sein. Sie können dies beispielsweise in Xcode tun, indem Sie Signierungseinstellungen wie Bereitstellungsprofil und Identität angeben. Weitere Informationen finden Sie unter Apple-Codesignatur.
Prüfen Sie die App-Signatur, indem Sie
codesign --verify --deep --verbose /path/to/MyApp.app
ausführen. Dabei ist „MyApp“ der Name der App im entzippten Ordner. Das variiert je nach Projekt. Die erwartete Ausgabe istMyApp.app: valid on disk
.Wenn Sie einen XCUITest ausführen, müssen Sie den Test und den Runner mit dem Befehl
codesign --verify --deep --verbose /path/to/MyTest-Runner.app
überprüfen. Dabei ist „MyTest“ der Name des Runners im entzippten Ordner. Das variiert je nach Projekt. Die erwartete Ausgabe istMyTest-Runner.app: valid on disk
.
Schritt 4: App verpacken und Upload testen
Nachdem der Test erfolgreich erstellt wurde, zippen Sie ihn für den Upload zu Test Lab:
cd FOLDER_WITH_TEST_OUTPUT/Build/Products : \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
Sie können Ihren Test auch packen, indem Sie die Testdateien manuell komprimieren:
Öffnen Sie den Finder und wechseln Sie zu
FOLDER_WITH_TEST_OUTPUT
.Öffnen Sie den Ordner, dessen Name mit Ihrem Projektnamen beginnt, und rufen Sie dann den Ordner
Build/Products
auf.Wählen Sie die Ordner
Debug-iphoneos
undYOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
aus und komprimieren Sie sie.
Schritt 5: (Optional) Test lokal ausführen
Bevor Sie Ihren 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-id
Nächste Schritte
Laden Sie Ihren Test in der Firebase Console oder der gcloud CLI hoch und führen Sie ihn aus.