Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Ce guide explique comment préparer un 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". Si vous le souhaitez, vous pouvez conserver l'emplacement par défaut de ce répertoire. Toutefois, il est souvent utile de choisir un emplacement plus facilement accessible pour les fichiers, en particulier si vous prévoyez d'exécuter des tests avec Test Lab souvent :
Ouvrez votre projet dans Xcode.
Dans la barre de menu macOS, sélectionnez File > Project Settings… (Fichier > Paramètres du projet…).
Dans le menu déroulant Données dérivées, remplacez Emplacement par défaut par Emplacement personnalisé.
Dans le champ situé sous le menu déroulant, sélectionnez un emplacement où Xcode doit générer vos tests. (C'est 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 les tests sur un appareil iOS générique :
Dans le menu déroulant des appareils 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 (Produit) > Build For (Compiler pour) > Testing (Test).
Vous pouvez également créer votre XCTest à partir de la ligne de commande.
Exécutez la commande suivante dans un terminal :
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 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 MyApp.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" est le nom de l'exécuteur dans le dossier décompressé. Cela varie pour chaque projet. Le résultat attendu est MyTest-Runner.app: valid on disk.
Étape 4 : Empaquetez votre application et testez l'importation
Une fois votre test compilé avec succès, 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 regrouper 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/Products.
Sélectionnez les dossiers Debug-iphoneos et YOUR_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 :
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/29 (UTC).
[null,null,["Dernière mise à jour le 2025/08/29 (UTC)."],[],[],null,["\u003cbr /\u003e\n\nThis guide describes how to prepare an XCTest for testing in\nFirebase Test Lab.\n\n**Step 1**: Configure your project's Derived Data location\n\nXcode places compiled iOS artifacts, including any tests you build, in a Derived\nData directory. It is possible to keep the default location for that directory,\nif you'd like, but it's often helpful to choose a more easily-accessible place\nfor the files, especially if you're going to be running tests with Test Lab\noften:\n\n1. Open your project in Xcode.\n2. In the macOS menu bar, select **File** \\\u003e **Project Settings...**\n3. Change the **Derived Data** drop-down from **Default Location** to **Custom Location**.\n4. In the field below the drop-down, select a location for Xcode to output your tests to. (This is your \u003cvar class=\"edit\" scope=\"FOLDER_WITH_TEST_OUTPUT\" translate=\"no\"\u003eFOLDER_WITH_TEST_OUTPUT\u003c/var\u003e)\n\n**Step 2**: Build a generic test file\n\nTest Lab runs unit tests and UI tests using the\n[XCTest](https://developer.apple.com/documentation/xctest) framework.\nTo run your app's XCTests on Test Lab devices, build it for testing on a\nGeneric iOS Device:\n\n1. From the device drop-down at the top of your Xcode workspace window, select **Generic iOS Device**.\n2. In the macOS menu bar, select **Product** \\\u003e **Build For** \\\u003e **Testing**.\n\nAs an alternative, you can build your XCTest from the command line.\nUse the following command in a terminal: \n\nproject \n\n```\nxcodebuild -project PATH/TO/YOUR_WORKSPACE/YOUR_PROJECT.xcodeproj \\\n -scheme YOUR_SCHEME \\\n -derivedDataPath FOLDER_WITH_TEST_OUTPUT \\\n -sdk iphoneos build-for-testing\n```\n\nworkspace \n\n```\nxcodebuild -workspace PATH/TO/YOUR_WORKSPACE.xcworkspace \\\n -scheme YOUR_SCHEME \\\n -derivedDataPath FOLDER_WITH_TEST_OUTPUT \\\n -sdk iphoneos build-for-testing\n```\n\n**Step 3**: Sign your test and verify\n\n1. Make sure all artifacts in the app and test are signed. For example, you can\n do this through Xcode by specifying signing settings like provisioning profile\n and identity. For more information, see\n [Apple Code Signing](https://developer.apple.com/support/code-signing/).\n\n | **Note** : Test Lab re-signs your app with its own provisioning profile and certificate.\n2. Verify app signature by running\n `codesign --verify --deep --verbose /path/to/MyApp.app` where \"MyApp\" is the\n name of the app inside the unzipped folder. This varies for each project.\n Expected output is `MyApp.app: valid on disk`.\n\n3. If you are running an XCUITest, then you need to verify the test and runner\n by running `codesign --verify --deep --verbose /path/to/MyTest-Runner.app` where\n \"MyTest\" is the name of the runner inside the unzipped folder. This varies for\n each project. Expected output is `MyTest-Runner.app: valid on disk`.\n\n**Step 4**: Package your app and test for uploading\n\n1. After your test successfully builds, zip it for upload to Test Lab:\n\n ```\n cd FOLDER_WITH_TEST_OUTPUT/Build/Products : \\\n zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun\n ```\n\nYou can also package up your test by compressing the test files manually:\n\n1. Open Finder and navigate to\n \u003cvar class=\"edit\" scope=\"FOLDER_WITH_TEST_OUTPUT\" translate=\"no\"\u003eFOLDER_WITH_TEST_OUTPUT\u003c/var\u003e.\n\n2. Open the folder that has your project name as a prefix, then navigate to\n `Build/Products` folder inside.\n\n3. Select the folders `Debug-iphoneos` and\n \u003cvar class=\"edit\" scope=\"YOUR_SCHEME\" translate=\"no\"\u003eYOUR_SCHEME\u003c/var\u003e`_iphoneos`\u003cvar class=\"edit\" scope=\"DEPLOYMENT_TARGET\" translate=\"no\"\u003eDEPLOYMENT_TARGET\u003c/var\u003e`-arm64.xctestrun`\n and then compress them.\n\n**Step 5**: (Optional) Run your test locally\n\nBefore running your test with Test Lab, you can run it locally with\na USB-connected device to quality check its behavior: \n\n```\nxcodebuild test-without-building \\\n -xctestrun \"Derived Data/Build/Products/YOUR_SCHEME.xctestrun\" \\\n -destination id=your-phone-id\n```\n\nNext steps\n\nUpload and run your test in the [Firebase console](/docs/test-lab/ios/firebase-console)\nor the [gcloud CLI](/docs/test-lab/ios/command-line)."]]