Führen Sie einen XCTest durch

In dieser Anleitung wird beschrieben, wie Sie einen XCTest für den Test im Firebase Test Lab vorbereiten.

Schritt 1 : Konfigurieren Sie den Speicherort der abgeleiteten Daten Ihres Projekts

Xcode platziert kompilierte iOS-Artefakte, einschließlich aller von Ihnen erstellten Tests, in einem Verzeichnis abgeleiteter Daten. Es ist möglich, den Standardspeicherort für dieses Verzeichnis beizubehalten, wenn Sie möchten. Oft ist es jedoch hilfreich, einen leichter zugänglichen Speicherort für die Dateien zu wählen, insbesondere wenn Sie häufig Tests mit Test Lab ausführen:

  1. Öffnen Sie Ihr Projekt in Xcode.
  2. Wählen Sie in der macOS-Menüleiste Datei > Projekteinstellungen... aus.
  3. Ändern Sie das Dropdown-Menü „Abgeleitete Daten“ von „Standardspeicherort“ in „Benutzerdefinierter Speicherort“ .
  4. Wählen Sie im Feld unter dem Dropdown-Menü einen Speicherort aus, an den Xcode Ihre Tests ausgeben soll. (Dies ist Ihr FOLDER_WITH_TEST_OUTPUT )

Schritt 2 : Erstellen Sie eine generische Testdatei

Test Lab führt Unit-Tests und UI-Tests mit dem XCTest- Framework durch. Um die XCTests Ihrer App auf Testlaborgeräten auszuführen, erstellen Sie sie zum Testen auf einem generischen iOS-Gerät:

  1. Wählen Sie im Dropdown-Menü „Gerät“ oben in Ihrem Xcode-Arbeitsbereichsfenster die Option „Generisches iOS-Gerät“ aus.
  2. Wählen Sie in der macOS-Menüleiste Produkt > Erstellen für > Testen 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

Arbeitsplatz

xcodebuild -workspace PATH/TO/YOUR_WORKSPACE.xcworkspace \
   -scheme YOUR_SCHEME \
   -derivedDataPath FOLDER_WITH_TEST_OUTPUT \
   -sdk iphoneos build-for-testing

Schritt 3 : Unterschreiben Sie Ihren Test und überprüfen Sie ihn

  1. Stellen Sie sicher, dass alle Artefakte in der App und im Test signiert sind. Sie können dies beispielsweise über Xcode tun, indem Sie Signatureinstellungen wie Bereitstellungsprofil und Identität angeben. Weitere Informationen finden Sie unter Apple Code Signing .

  2. Überprüfen Sie die App-Signatur, indem Sie codesign --verify --deep --verbose /path/to/MyApp.app ausführen, wobei „MyApp“ der Name der App im entpackten Ordner ist. Dies variiert je nach Projekt. Die erwartete Ausgabe ist MyApp.app: valid on disk .

  3. Wenn Sie einen XCUITest ausführen, müssen Sie den Test und den Läufer überprüfen, indem Sie codesign --verify --deep --verbose /path/to/MyTest-Runner.app ausführen, wobei „MyTest“ der Name des Läufers im Inneren ist entpackter Ordner. Dies variiert je nach Projekt. Die erwartete Ausgabe ist MyTest-Runner.app: valid on disk .

Schritt 4 : Verpacken Sie Ihre App und testen Sie sie zum Hochladen

  1. Nachdem Ihr Test erfolgreich erstellt wurde, komprimieren Sie ihn zum Hochladen in das Testlabor:

    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 verpacken, indem Sie die Testdateien manuell komprimieren:

  1. Öffnen Sie den Finder und navigieren Sie zu FOLDER_WITH_TEST_OUTPUT .

  2. Öffnen Sie den Ordner mit Ihrem Projektnamen als Präfix und navigieren Sie dann zum Ordner Build/Products .

  3. Wählen Sie die Ordner Debug-iphoneos und YOUR_SCHEME _iphoneos DEPLOYMENT_TARGET -arm64.xctestrun aus und komprimieren Sie sie anschließend.

Schritt 5 : (Optional) Führen Sie Ihren Test lokal aus

Bevor Sie Ihren Test mit Test Lab ausführen, können Sie ihn lokal mit einem über USB angeschlossenen Gerät ausführen, um sein Verhalten auf Qualität zu überprü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 hoch und führen Sie ihn in der Firebase-Konsole oder der gcloud-CLI aus.