XCTest ausführen

In diesem Leitfaden wird die Vorbereitung eines XCTest für Tests in Firebase Test Lab

Schritt 1: Speicherort für abgeleitete Daten des Projekts konfigurieren

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

  1. Öffnen Sie Ihr Projekt in Xcode.
  2. Wählen Sie in der macOS-Menüleiste Datei > Projekteinstellungen...
  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 aus, an dem Xcode Ihre Tests ausgeben soll. (Dies ist Ihre FOLDER_WITH_TEST_OUTPUT)

Schritt 2: Generische Testdatei erstellen

Test Lab führt Unit- und UI-Tests mit dem XCTest-Framework. 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 oben im Xcode-Arbeitsbereich Allgemeines iOS-Gerät
  2. Wählen Sie in der macOS-Menüleiste Produkt > Entwickeln für > Test:

Alternativ können Sie XCTest über die Befehlszeile erstellen. Führen Sie 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 signieren und bestätigen

  1. Achten Sie darauf, dass alle Artefakte in der App und im Test signiert sind. So können Sie zum Beispiel tun Sie dies über Xcode, indem Sie Signatureinstellungen wie das Bereitstellungsprofil und Identität. 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 ist von Projekt zu Projekt unterschiedlich. Die erwartete Ausgabe ist MyApp.app: valid on disk.

  3. Wenn Sie einen XCUITest ausführen, müssen Sie den Test und den Runner überprüfen. indem Sie codesign --verify --deep --verbose /path/to/MyTest-Runner.app ausführen, „MyTest“ ist der Name des Runners im entpackten Ordner. Dies variiert bei für jedes Projekt. Die erwartete Ausgabe ist MyTest-Runner.app: valid on disk.

Schritt 4: App verpacken und zum Hochladen testen

  1. Nachdem der Test erfolgreich erstellt wurde, zippen Sie ihn zum Hochladen 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 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, 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 und komprimieren Sie sie dann.

Schritt 5 (optional): Test lokal ausführen

Bevor Sie den Test mit Test Lab ausführen, können Sie ihn lokal mit eines USB-Geräts, um sein 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 der Firebase-Konsole hoch und führen Sie ihn aus. oder die gcloud CLI verwenden.