2016-09-10 8 views
7

xcodebuildのmanページには2つのオプションがあることに気付きました。-only-testingと-skip-testingフラグでxcodebuildを使用するにはどうすればよいですか?

-only-testing:TEST-IDENTIFIER  

含めるためのテストを指定することによって、試験を拘束し、他のテストを

-skip-testing:TEST-IDENTIFIER  

を除外することは除外するためのテストを指定することによって、試験を拘束するが、他の試験

含みます私が試したもの:

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

TEST-IDENTIFIERとは何ですか?

答えて

4

あなたは、私はこのようにそれを使用したビデオhttps://developer.apple.com/videos/play/wwdc2016/409/

確認することができます私のテストtreeためUITests/TC_TextArea/test1の

のみのテストを。作品次のように細かい

完全なコマンドはなります

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

TEST-IDENTIFIERは、どのようにXcodeがテストにマップしているかを示します。テストツリーを確認してください - 左側の5番目のタブ。作業を行うには、常に 'xcodebuild test skip-testing:MyTestsBundleName/MyClassName/MyTestCaseName'ルートから始める必要があります。 –

10

マルシオが言ったように、それは文字列のようなパスです。たとえば、あなたが唯一の方法を実行するために、その後MyScheme命名スキーム、テスト対象MyUITests、およびテストクラスLoginTest、テスト方法testUserLoginを、持っている

を言うあなたならば、あなたは、同様に

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 

を実行することができますLoginTestですべてのテストを実行したい場合は、ここをクリック

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

は、このパラメータに正規表現を使用する方法です。 -only-testingのようなもの:MyUItests/LoginTest [1-2] ??? – emoleumassi

+2

私はこの回答を更新しましたが、それは部分的に間違っていて、約30分を無駄にしました。 '-only-testing'引数では、スキームではなくターゲットを指定します。 –

関連する問題