2016-09-10 1 views
7

J'ai remarqué qu'il y a deux options dans la page de manuel de xcodebuild.Comment utiliser xcodebuild avec -only-testing et -skip-testing flag?

-only-testing:TEST-IDENTIFIER  

contraint les tests en spécifiant des tests à inclure et à l'exclusion d'autres tests

-skip-testing:TEST-IDENTIFIER  

contraint les tests en spécifiant des tests à exclure, mais y compris d'autres tests

Ce que j'essaie:

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

Qu'est-ce que TEST-IDENTIFIER?

Répondre

4

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

Je l'ai utilisé comme ceci:

-seulement-test: UITests/TC_TextArea/test1

pour mes tests tree. Fonctionne très bien

commande complète se présente comme suit:

command = 'xcodebuild test 
-workspace ' + pathToProjectWorkspaceFolder + '/project.xcworkspace 
-scheme yourApp.app 
-destination "platform=iOS,name=' + deviceName + '" 
-only-testing:UITests/TC_TextArea/test1' 
+3

TEST-IDENTIFIER est comment Xcode mappe vos tests. Vérifiez votre arbre de test - le 5ème onglet sur votre gauche. Pour fonctionner, vous devez toujours commencer à partir de la racine, c'est-à-dire, «xcodebuild test skip-testing: MyTestsBundleName/MyClassName/MyTestCaseName» –

10

Comme quoi Marcio dit, il est un chemin comme chaîne.

Par exemple, supposons que vous avez un système nommé MyScheme, une cible de test MyUITests, et les tests de classe LoginTest, méthode test puis testUserLogin, pour exécuter uniquement 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, ici vous exécutez

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

est-ce un moyen d'utiliser l'expression régulière pour ce paramètre. Quelque chose comme -only-testing: MyUItests/LoginTest [1-2] ??? – emoleumassi

+2

Je viens de mettre à jour cette réponse, il était en partie faux et m'a conduit à perdre environ 30 minutes. Dans l'argument '-only-testing', vous spécifiez la cible et non le schéma. –