2016-09-10 5 views
7

Я заметил, что есть две возможности в справочной странице xcodebuild.Как использовать xcodebuild с флажком -only-testing и -skip-testing?

-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/

Я использовал это следующим образом:

-только-тестирование: UITests/TC_TextArea/test1

для моих тестов tree. Работает отлично

Полная команда выглядит следующим образом:

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 сопоставляет ваши тесты. Проверьте дерево тестирования - пятую вкладку слева. Чтобы работать, вам всегда нужно начинать с корня, т. Е. '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

- это какой-то способ использовать регулярное выражение для этого параметра. Что-то вроде-только тестирование: MyUItests/LoginTest [1-2] ??? – emoleumassi

+2

Я только что обновил этот ответ, это было частично неправильно и привело меня к растрате около 30 минут. В аргументе '-only-testing' вы указываете цель, а не схему. –

Смежные вопросы