Exécuter un XCTest

Ce guide décrit 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 tous les tests que vous créez, dans un répertoire de données dérivées. Il est possible de conserver l'emplacement par défaut de ce répertoire, si vous le souhaitez, mais il est souvent utile de choisir un emplacement plus facilement accessible pour les fichiers, surtout si vous prévoyez d'exécuter souvent des tests avec Test Lab :

  1. Ouvrez votre projet dans Xcode.
  2. Dans la barre de menu macOS, sélectionnez Fichier > Paramètres du projet...
  3. Modifiez la liste déroulante Données dérivées de Emplacement par défaut à Emplacement personnalisé .
  4. Dans le champ sous la liste déroulante, sélectionnez un emplacement vers lequel Xcode doit envoyer vos tests. (Voici votre FOLDER_WITH_TEST_OUTPUT )

Étape 2 : Créer 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 les appareils Test Lab, créez-la pour la tester sur un appareil iOS générique :

  1. Dans la liste déroulante 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 menus macOS, sélectionnez Produit > Build For > Testing .

Comme alternative, vous pouvez créer votre XCTest à partir de la ligne de commande. Utilisez 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 vérifiez

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

  2. Vérifiez la signature de l'application en exécutant codesign --verify --deep --verbose /path/to/MyApp.app où "MyApp" est le nom de l'application dans le dossier décompressé. Cela varie pour 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ù "MyTest" est le nom de l'exécuteur à l'intérieur du dossier décompressé. Cela varie pour chaque projet. Le résultat attendu est MyTest-Runner.app: valid on disk .

Étape 4 : Emballez votre application et testez le téléchargement

  1. Une fois votre test construit avec succès, compressez-le pour le télécharger sur Test Lab :

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

Vous pouvez également regrouper 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 a le nom de votre projet comme préfixe, puis accédez au dossier Build/Products à l'intérieur.

  3. Sélectionnez les dossiers Debug-iphoneos et YOUR_SCHEME _iphoneos DEPLOYMENT_TARGET -arm64.xctestrun puis compressez-les.

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

Avant d'exécuter votre test avec Test Lab, vous pouvez l'exécuter localement avec un périphérique connecté via 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

Prochaines étapes

Téléchargez et exécutez votre test dans la console Firebase ou dans gcloud CLI .