Catch up on highlights from Firebase at Google I/O 2023. Learn more

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 pour 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 allez souvent exécuter des tests avec Test Lab :

  1. Ouvrez votre projet dans Xcode.
  2. Dans la barre de menus macOS, sélectionnez Fichier > Paramètres du projet...
  3. Modifiez le menu déroulant 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 pour Xcode vers lequel sortir vos tests. (Ceci est votre FOLDER_WITH_TEST_OUTPUT )

Etape 2 : Construire 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, 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 Product > 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 d'approvisionnement 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. La sortie attendue 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. La sortie attendue est MyTest-Runner.app: valid on disk .

Étape 4 : Empaqueter votre application et tester le téléchargement

  1. Une fois votre test construit avec succès, compressez-le pour le télécharger 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 préparer votre test en compressant manuellement les fichiers de test :

  1. Ouvrez le Finder et accédez à FOLDER_WITH_TEST_OUTPUT .

  2. Ouvrez le dossier contenant 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 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

Prochaines étapes

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