XCUITest Test Plan
背景
在编写了越来越多的测试用例之后,发现有时候想单独执行某一批用例。
甚至自己控制新编写的功能用例要不要被加入当前的执行过程。
为了方便团队协作和不同场景下执行需求的管理,尝试使用 xctestplan 来进行控制。
一、什么是测试计划
Xcode 测试计划提供了一种运行具有各种测试配置的测试选择的方法。
测试计划是一个JSON文件,具有.xctestplan
扩展名,您可以将其添加到Xcode项目中并从方案引用。
文件格式Demo
它有三个主要因素:
测试目标:一个或多个测试目标(单位或用户界面)。您不必在测试目标中运行所有测试。对于每个测试计划,您可以选择计划将运行的测试以及测试是否可以并行运行。
默认选项:一组默认(共享)设置,可以被特定配置覆盖。这些是您通常在方案编辑器中找到的设置:启动参数、本地化设置、屏幕截图设置、文本执行(字母或随机)、运行时调试选项Sanitizer、线程检查器和malloc保护。
配置:覆盖默认选项的一个或多个配置。测试计划多次运行所选测试,每次配置一次。
它们有什么用?
测试计划的一些可能用途:
使用不同的调试选项Sanitizer/诊断剂运行测试:
不能同时启用地址和线程调试选项Sanitizer进行测试。
使用测试计划,我们可以创建两种配置,一种启用地址调试选项Sanitizer,另一种启用线程调试选项Sanitizer。运行测试计划,然后运行我们的测试两次,每种调试选项Sanitizer一次。
您可以轻松地添加其他配置以与malloc诊断一起运行。测试多个本地化:
为您支持的每种语言创建配置。您可以将应用程序语言和区域设置为配置的一部分。这也是为本地化者生成屏幕截图的好方法。使用特定配置运行选定的测试:
例如,您不希望性能测试并行运行。不同的测试范围:
我喜欢在点击 Command + U 时默认运行一组快速测试。
我还想要一套针对几种配置运行的全套单元、用户界面和性能测试。测试计划使设置起来更容易。
如果您已经通过创建不同的方案来执行上述一些操作,您可能会发现您可以使用一个或多个测试计划合并到一个单一方案中。
二、创建测试计划
Xcode菜单栏:
Product
> Test Plan
> New Test Plan
指定这个测试计划包含哪些用例
(切换tab:Tests、Configurations)更改测试计划的配置
比如这里可以配置,UI自动化执行成功的时候是否删除截图。建议配置成只有失败的case再保留截图。
配置一个 UITest Scheme,使得它使用测试计划
三、命令行运行不同的测试计划
xcodebuild test
-scheme SingleUITestUITests \
-destination 'platform=iOS,id=ff7f6dc06b595abbe4d86a18a37b1a5dcde3aee0' \
-workspace SingleUITest.xcworkspace \
-only-testing:SingleUITestUITests/CourseWapTraverse \
-testPlan KewapTestPlan