[英]Target individual XCTest unit test cases in Xcode 5 to a specific iOS device for a universal app?
[英]Running individual XCTest (UI, Unit) test cases for iOS apps from the command line
是否可以从命令行界面从 iOS 应用程序测试目标而不是所有测试用例运行单个测试用例或单个测试套件?
您可以使用xcodebuild从命令行运行测试,开箱即用。 当您这样做时,您将运行您选择的测试目标中包含的所有测试用例。
您也可以使用 Fastlane 的扫描来执行此操作,但我相信您只能运行 select(如上)的构建方案的所有测试,因此它与 xcodebuild 没有什么不同。
您可以使用来自 Facebook 的xctool运行特定测试,但它不使用 xcodebuild,并且仅限于在模拟器上运行,而不是在实际的 iOS 测试设备上运行。
我找到了直接运行xctest命令行实用程序的参考,但它似乎是一个未记录的功能并且以 DerivedData 为目标。 由于 UI 测试将其 *xctest 文件放在单独的 XCTRunner 包中,这使情况变得复杂。
运行单独的测试
要运行单个测试用例,您可以使用-only-testing
-only-testing
模式
-only-testing:<target>/<class_name>/<test_name>
xcodebuild
模式
xcodebuild test
-workspace "<name>.xcworkspace"
-scheme "<name>"
-destination '<options>'
-only-testing "<test_case>"
例子
//for example(several test cases)
xcodebuild test
-workspace "MyApp.xcworkspace"
-scheme "MyAppTest"
-destination 'platform=iOS Simulator,name=iPhone 11 Pro Max,OS=13.5'
-only-testing "MyAppTest/TestClass/foo"
-only-testing "MyAppTest/TestClass/foo2"
例如,如果Test Navigator
看起来像
参数将具有以下类型
-only-testing:F49088168M_OBDIITests/HexUtilityTests/testHexToBinStringFormat
如果你想添加一个额外的测试用例,你可以再添加一个-only-testing
您也可以使用以下-skip-testing
跳过测试: -skip-testing
您可以在Derived Data
找到测试结果[关于]
<derived_data>/<project_name>-dzqvyqfphypgrrdauxiyuhxkfxmg/Logs/Test/Test-<target_name>-<date>.xcresult
我和你的情况类似,并且已经构建了一个 python 脚本来触发我想要的一组测试用例。 它的过程有点复杂,但对我有用,并且随着时间的推移在实现 DataProvider 方法、重新运行失败的测试用例和我需要的其他自定义方面非常有用。
您想要实现的一些相关步骤。
如果您需要更多信息,请添加评论,我会回复。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.