XCTest ausführen

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

Schritt 1: Speicherort der abgeleiteten Daten des Projekts konfigurieren

Xcode platziert kompilierte iOS-Artefakte, einschließlich aller von Ihnen erstellten Tests, in einem abgeleiteten Datenverzeichnis. Sie können den Standardspeicherort für dieses Verzeichnis beibehalten. Es ist jedoch oft hilfreich, einen leichter zugänglichen Speicherort für die Dateien auszuwä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 im Drop-down-Menü Abgeleitete Daten den Wert von Standardspeicherort in Benutzerdefinierter Speicherort.
  4. Wählen Sie im Feld unter dem Drop-down-Menü einen Speicherort für die Ausgabe Ihrer Tests durch Xcode aus. (Das ist deine FOLDER_WITH_TEST_OUTPUT.)

Schritt 2: Generische 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:

  1. Wählen Sie im Drop-down-Menü für Geräte oben im Xcode-Arbeitsbereich Generic iOS Device aus.
  2. Wählen Sie in der macOS-Menüleiste Produkt > Build For > Testing aus.

Alternativ können Sie XCTest über die Befehlszeile erstellen. Führen Sie dazu den folgenden Befehl in einem Terminal aus:

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 unterzeichnen und bestätigen

  1. Achten Sie darauf, dass alle Artefakte in der App und im Test signiert sind. Sie können dies beispielsweise über Xcode tun, indem Sie Signatureinstellungen wie das Bereitstellungsprofil und die Identität angeben. Weitere Informationen finden Sie unter Apple-Codesignatur.

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

  3. Wenn Sie einen XCUITest ausführen, müssen Sie den Test und den Runner mit codesign --verify --deep --verbose /path/to/MyTest-Runner.app bestätigen. Dabei ist „MyTest“ der Name des Runners im entpackten Ordner. Das variiert von Projekt zu Projekt. Die erwartete Ausgabe ist MyTest-Runner.app: valid on disk.

Schritt 4: App verpacken und Upload testen

  1. Nachdem der Test erfolgreich erstellt wurde, komprimieren Sie ihn und laden Sie ihn auf Test Lab hoch:

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

  1. Öffnen Sie den Finder und rufen Sie FOLDER_WITH_TEST_OUTPUT auf.

  2. Öffnen Sie den Ordner, der den Namen Ihres Projekts als Präfix hat, und gehen Sie dann zum Ordner Build/Products.

  3. Wählen Sie die Ordner Debug-iphoneos und YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun aus und komprimieren Sie sie.

Schritt 5: Test lokal ausführen (optional)

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-id

Nächste Schritte

Laden Sie den Test in die Firebase Console oder die gcloud CLI hoch und führen Sie ihn aus.