Exécuter un XCTest

Ce guide explique comment préparer un XCTest pour les tests dans Firebase Test Lab.

Étape 1: Configurez l'emplacement des données dérivées de votre projet

Xcode place les artefacts iOS compilés, y compris les tests que vous créez, dans un Répertoire de données. Il est possible de conserver l'emplacement par défaut de ce répertoire, Si vous le souhaitez, il est souvent utile de choisir un lieu plus accessible pour les fichiers, en particulier si vous allez exécuter des tests avec Test Lab. souvent:

  1. Ouvrez votre projet dans Xcode.
  2. Dans la barre de menu macOS, sélectionnez Fichier > Paramètres du projet...
  3. Dans la liste déroulante Données dérivées, remplacez Emplacement par défaut sur Emplacement personnalisé.
  4. Dans le champ situé sous la liste déroulante, sélectionnez l'emplacement où Xcode doit générer la sortie. vos tests. Il s'agit de votre FOLDER_WITH_TEST_OUTPUT)

Étape 2: Créez un fichier de test générique

Test Lab exécute des tests unitaires et des tests d'interface utilisateur à l'aide du framework XCTest. Pour exécuter les XCTests de votre application sur des appareils Test Lab, compilez-la pour la tester sur un Appareil iOS générique:

  1. Dans le menu déroulant des appareils en haut de la fenêtre de votre espace de travail Xcode, sélectionnez Appareil iOS générique
  2. Dans la barre de menu macOS, sélectionnez Produit > Créer pour > Tests :

Vous pouvez également créer votre XCTest à partir de la ligne de commande. Exécutez la commande suivante dans un terminal:

projet

xcodebuild -project PATH/TO/YOUR_WORKSPACE/YOUR_PROJECT.xcodeproj \
   -scheme YOUR_SCHEME \
   -derivedDataPath FOLDER_WITH_TEST_OUTPUT \
   -sdk iphoneos build-for-testing

espace de travail

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

Étape 3: Signez votre test et validez-le

  1. Assurez-vous que tous les artefacts de l'application et du test sont signés. Par exemple, vous pouvez via Xcode, en spécifiant des paramètres de signature tels que le profil de provisionnement et l'identité. Pour en savoir plus, consultez Signature de code Apple.

  2. Validez la signature de l'application en exécutant codesign --verify --deep --verbose /path/to/MyApp.app où "MonApp" est le nom de l'application dans le dossier décompressé. Cela dépend de chaque projet. Le résultat attendu est MyApp.app: valid on disk.

  3. Si vous exécutez un XCUITest, vous devez vérifier le test et l'exécuteur. en exécutant codesign --verify --deep --verbose /path/to/MyTest-Runner.app où "MonTest" est le nom de l'exécuteur dans le dossier décompressé. Cela varie pour chaque projet. Le résultat attendu est de MyTest-Runner.app: valid on disk.

Étape 4: Empaquetez votre application et testez-la pour l'importation

  1. Une fois votre test créé, compressez-le pour l'importer dans Test Lab:

    cd FOLDER_WITH_TEST_OUTPUT/Build/Products : \
    zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
    

Vous pouvez également empaqueter votre test en compressant les fichiers de test manuellement:

  1. Ouvrez le Finder et accédez à FOLDER_WITH_TEST_OUTPUT

  2. Ouvrez le dossier qui porte le nom de votre projet en préfixe, puis accédez au dossier Build/Products.

  3. Sélectionnez les dossiers Debug-iphoneos et YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun avant de les compresser.

Étape 5 : (Facultatif) Exécuter votre test localement

Avant d'exécuter votre test avec Test Lab, vous pouvez l'exécuter localement avec un appareil connecté par USB pour vérifier la qualité de son comportement :

xcodebuild test-without-building \
    -xctestrun "Derived Data/Build/Products/YOUR_SCHEME.xctestrun" \
    -destination id=your-phone-id

Étapes suivantes

Importez et exécutez votre test dans la console Firebase ou la gcloud CLI.