Ce guide explique comment préparer un test XCTest pour le tester 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 DerivedData. Vous pouvez conserver l'emplacement par défaut de ce répertoire, mais il est souvent utile de choisir un emplacement plus facilement accessible pour les fichiers, en particulier si vous allez exécuter souvent 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).
- Remplacez l'option Default Location (Emplacement par défaut) du menu déroulant Derived Data (Données dérivées) par Custom Location (Emplacement personnalisé).
- Dans le champ situé sous le menu déroulant, sélectionnez l'emplacement où Xcode doit générer 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 tests XCTest de votre application sur des appareils Test Lab, compilez-la pour la tester sur un appareil iOS générique :
- Dans le menu déroulant des appareils en haut de la fenêtre de votre espace de travail Xcode, sélectionnez Generic iOS Device (Appareil iOS générique).
- Dans la barre de menu macOS, sélectionnez Product > Build For > Testing.
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/PROJECT_NAME.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
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 Apple Code Signing.
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 estMyApp.app: valid on disk.Si vous exécutez un test XCUITest, vous devez valider 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 dans le dossier décompressé. Cela varie pour chaque projet. Le résultat attendu estMyTest-Runner.app: valid on disk.
Étape 4 : Empaquetez votre application et testez l'importation
Une fois le test créé, compressez-le au format ZIP 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 dont le nom commence par le nom de votre projet, puis accédez au dossier
Build/Productsqu'il contient.Sélectionnez les dossiers
Debug-iphoneosetYOUR_SCHEME_iphoneosDEPLOYMENT_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 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 consoleFirebase ou la gcloud CLI.