web-dev-qa-db-fra.com

Comment utiliser xcodebuild avec l'option -only-testing et -skip-testing?

J'ai remarqué qu'il y a deux options dans la page de manuel de xcodebuild.

-only-testing:TEST-IDENTIFIER       

contraint les tests en spécifiant que les tests doivent inclure ou non d'autres tests

-skip-testing:TEST-IDENTIFIER       

contraint les tests en spécifiant les tests à exclure, mais en incluant d'autres tests

Ce que j'essaye:

xcodebuild -workspace MyWorkSpace.xcworkspace / 
-sdk iphonesimulator / 
-destination id=7F52F302-C6AF-4215-B269-39A6F9913D5B / 
-scheme SCHEME-iOS / 
test -only-testing:???

Que signifie TEST-IDENTIFIER?

11
Zigii Wong

Comme ce que Marcio a dit, c'est un chemin comme une corde.

Par exemple, supposons que vous ayez un schéma nommé MyScheme, une cible de test MyUITests et que vous testez la classe LoginTest, puis que vous testez la méthode testUserLogin, pour n'exécuter que la méthode, vous pouvez exécuter

xcodebuild -workspace Envoy.xcworkspace \
    -scheme MyScheme \
    -sdk iphonesimulator \
    -destination 'platform=iOS Simulator,name=iPad Air 2,OS=10.1'
    '-only-testing:MyUITests/LoginTest/testUserLogin' test

De même, si vous voulez exécuter tous les tests sous LoginTest, vous lancez ici

xcodebuild -workspace Envoy.xcworkspace \
    -scheme MyScheme \
    -sdk iphonesimulator \
    -destination 'platform=iOS Simulator,name=iPad Air 2,OS=10.1'
    '-only-testing:MyUITests/LoginTest' test
16
Fang-Pen Lin

Vous pouvez visionner la vidéo https://developer.Apple.com/videos/play/wwdc2016/409/

Je l'ai utilisé comme ça: 

-only-testing: UITests/TC_TextArea/test1

pour mes tests arbre . Fonctionne bien

La commande complète ressemble à ceci:

command = 'xcodebuild test 
-workspace ' + pathToProjectWorkspaceFolder + '/project.xcworkspace 
-scheme yourApp.app 
-destination "platform=iOS,name=' + deviceName + '" 
-only-testing:UITests/TC_TextArea/test1'
5
N.K.
xcodebuild \
 -workspace MyApp.xcworkspace \
 -scheme Automation \
 -destination 'plaform=ios,name=My Real iPhone' \
 -only-testing:MyTestDirectory/TestClass/testMethodName \
 test-without-building
  • Pas besoin de guillemets simples autour du test uniquement
  • Pas besoin de noms de sous-répertoires car ils sont ignorés, par exemple. MonRépertoireTest/E2E /
0
user1681739

Pour tester une application, vous devez suivre les deux étapes suivantes:

  1. construire l'application
    xcodebuild build-for-testing \
        -workspace "<your_xcworkspace>" \
        -scheme "<your_scheme>" \
        -destination "platform=iOS Simulator,name=<your_simulator>,OS=<simdevice_os_version>" \
        -derivedDataPath "All"
  1. testez-le sans construire 
    xcodebuild test-without-building \
        -xctestrun "All/Build/Products/<your_scheme>_iphonesimulator<simdevice_os_version>-x86_64.xctestrun" \
        -destination "platform=iOS Simulator,name=<your_simulator>,OS=<simdevice_os_version>" '-only-testing:<your_test_bundle_to_run>'  \
        -derivedDataPath 'build/reports/<your_test_bundle_to_run>'

Ici, <your_test_bundle_to_run> indique le TEST-IDENTIFIER qui signifie 
Combien de catégories ou combien de tests élémentaires sous une catégorie que vous souhaitez exécuter, qui devraient être inclus dans un ensemble de tests [<your_test_bundle_to_run>]

0
Ali Azam