Préparation des tests XCUITest pour le chargement
Important
Visual Studio App Center est prévu pour la mise hors service le 31 mars 2025. Bien que vous puissiez continuer à utiliser Visual Studio App Center jusqu’à ce qu’il soit entièrement mis hors service, il existe plusieurs alternatives recommandées que vous pouvez envisager de migrer vers.
En savoir plus sur les chronologies de support et les alternatives.
Ce guide fournit des instructions pour préparer des tests XCUITest pour le chargement vers App Center Test.
Conditions requises pour le service de test
- Xcode >= 9.4.1
- iOS >= 9.0
Limitations du service de test
- Seule l’application chargée peut être testée, et non pas par le biais d’applications ou du reste du système.
Build For Testing
Pour exécuter un test dans App Center, vous devez générer votre application et un bundle XCUITest. Exécutez l’une des deux commandes suivantes à partir de la racine du répertoire de votre projet d’application :
# How to build a xcodeproj
rm -rf DerivedData
xcrun xcodebuild build-for-testing \
-configuration Debug \
-project YOUR_XCODEPROJ \
-sdk iphoneos \
-scheme YOUR_APP_SCHEME \
-derivedDataPath DerivedData
YOUR_XCODEPROJ
doit pointer vers un .xcodeproj
fichier, probablement intitulé PROJECT_NAME.xcodeproj
. Si vous utilisez un .xcworkspace
, utilisez -workspace
plutôt -project
que . YOUR_APP_SCHEME
doit être le schéma que vous utilisez pour générer votre application. Par défaut, il s’agit généralement du nom de votre application.
Xcrun génère votre application et un bundle XCUITest dans le DerivedData/Build
répertoire. Votre application et votre bundle XCUITest se trouvent dans le DerivedData/Build/Products/Debug-iphoneos/
répertoire.
xcrun xcodebuild -list
Chargement de tests dans App Center
Une fois qu’une suite de tests est préparée, configurez ensuite une série de tests pour charger et exécuter vos tests.
Voici un exemple de la façon dont vous pouvez charger votre suite XCUITest dans App Center Test.
# Upload your test to App Center
appcenter test run xcuitest \
--app "APP_ID" \
--devices "DEVICE_SET_ID" \
--test-series "main" \
--locale "en_US" \
--build-dir DerivedData/Build/Products/Debug-iphoneos
Pour obtenir un exemple concret d’envoi de tests à App Center, consultez ce script d’interpréteur de commandes qui envoie des tests à App Center.
Captures d’écran supplémentaires et étapes de test
À la fin de chaque méthode de test, une capture d’écran est automatiquement effectuée pour le rapport de test. Chaque capture d’écran s’affiche dans le rapport de test App Center en tant qu’étape de test distincte.
Activités
Vous pouvez générer des étiquettes et des captures d’écran supplémentaires pour une méthode de test en regroupant votre code de test à l’aide d’Apple Activities
. Pour plus d’informations, consultez Regroupement de tests dans des sous-étapes avec des activités.
Extrait de code pour encapsuler le code de test dans une activité
[XCTContext
runActivityNamed:title
block:^(id<XCTActivity> _Nonnull activity) {
// test code
}];
XCTContext.runActivity(named: title) { (activity) in
// test code
}
Captures d’écran manuelles
Une capture d’écran est générée automatiquement pour le rapport de test à la fin de chaque Activity
. Vous pouvez enregistrer une capture d’écran à un autre point au sein d’une capture d’écran en prenant une capture d’écran à l’aide de XCUIScreen, puis en créant une pièce jointe avec XCTAttachment et en l’ajoutant à l’actifActivity
.Activity
Cette capture d’écran s’affiche dans les rapports de test App Center au lieu de la capture d’écran par défaut à partir de la fin du Activity
fichier .
Extrait de code pour générer et attacher une capture d’écran dans une activité
XCUIScreenshot *screenshot = [[XCUIScreen mainScreen] screenshot];
XCTAttachment *attachment;
attachment = [XCTAttachment attachmentWithScreenshot:screenshot];
[attachment setLifetime:XCTAttachmentLifetimeKeepAlways];
[activity addAttachment:attachment];
let screenshot = XCUIScreen.main.screenshot()
let attachment = XCTAttachment(screenshot: screenshot)
attachment.lifetime = .keepAlways
activity.add(attachment)