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 dérivées. Vous pouvez 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, en particulier si vous devez souvent exécuter des tests avec Test Lab:
- Ouvrez votre projet dans Xcode.
- Dans la barre de menu macOS, sélectionnez File > Project Settings (Fichier > Paramètres du projet).
- Dans la liste déroulante Données dérivées, remplacez Emplacement par défaut par Emplacement personnalisé.
- Dans le champ situé sous la liste déroulante, sélectionnez l'emplacement où Xcode doit renvoyer 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, créez-la pour la tester sur un appareil iOS générique:
- Dans le menu déroulant de l'appareil en haut de la fenêtre de l'espace de travail Xcode, sélectionnez Appareil iOS générique.
- Dans la barre de menu macOS, sélectionnez Product > Build For > Testing (Produit > Compilation pour > Test).
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 vérifiez-le
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 des paramètres de signature tels que le profil de provisionnement et l'identité. Pour en savoir plus, consultez la section Signature de code Apple.
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 dépend de chaque projet. Le résultat attendu est deMyApp.app: valid on disk
.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" correspond au nom de l'exécuteur dans le dossier décompressé. Cela varie pour chaque projet. Le résultat attendu estMyTest-Runner.app: valid on disk
.
Étape 4: Packagez votre application et testez l'importation
Une fois le 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 manuellement les fichiers de test:
Ouvrez le Finder et accédez à
FOLDER_WITH_TEST_OUTPUT
.Ouvrez le dossier qui porte le nom de votre projet en préfixe, puis accédez au dossier
Build/Products
.Sélectionnez les dossiers
Debug-iphoneos
etYOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
, puis compressez-les.
Étape 5: (Facultatif) Exécutez votre test en local
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.