我注意到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
是什么意思?
答案 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
答案 3 :(得分:0)
要测试应用程序,您需要执行以下两个步骤:
- 构建应用程序
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)
- 无需构建即可进行测试
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:。