如何使用xcodebuild与-only-testing和-skip-testing标志?

时间:2016-09-10 14:55:00

标签: xcode xcodebuild

我注意到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是什么意思?

5 个答案:

答案 0 :(得分:17)

就像Marcio所说的那样,它是一条像弦一样的道路。

例如,假设您有一个名为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

答案 1 :(得分:6)

您可以查看视频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'

答案 2 :(得分:0)

xcodebuild \
 -workspace MyApp.xcworkspace \
 -scheme Automation \
 -destination 'plaform=ios,name=My Real iPhone' \
 -only-testing:MyTestDirectory/TestClass/testMethodName \
 test-without-building
  • 仅在测试中不需要单引号
  • 不需要子目录名称,因为它们会被忽略,例如MyTestDirectory / E2E /

答案 3 :(得分:0)

要测试应用程序,您需要执行以下两个步骤:

  
      
  1. 构建应用程序
  2.   
def __show_app_indicator(self) -> None:
    if AppIndicator3:
        icon_theme = Gtk.IconTheme.get_default()
        icon_name = icon_theme.lookup_icon('weather-showers-symbolic', 16, 0).get_filename()
        self.__app_indicator: AppIndicator3.Indicator = AppIndicator3.Indicator \
            .new(APP_ID, icon_name, AppIndicator3.IndicatorCategory.HARDWARE)
        self.__app_indicator.set_status(AppIndicator3.IndicatorStatus.ACTIVE)
        self.__app_indicator.set_menu(self.__app_indicator_menu)
  
      
  1. 无需构建即可进行测试
  2.   
    xcodebuild build-for-testing \
        -workspace "<your_xcworkspace>" \
        -scheme "<your_scheme>" \
        -destination "platform=iOS Simulator,name=<your_simulator>,OS=<simdevice_os_version>" \
        -derivedDataPath "All"

在这里, 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>' 表示<your_test_bundle_to_run>,这意味着
要包含在测试包中的要运行的类别数或测试用例数[{{ 1}}]

答案 4 :(得分:0)

如果您需要包括多个测试:

xcodebuild -project Some.xcodeproj \
-scheme AllTests -only-testing:PersistenceTests -only-testing:FoundationTests test

文档:

  

xcodebuild命令可以组合多个约束选项,但是   -only-testing:优先于-skip-testing:。