XCUITest 之测试计划(xctestplan)的使用

XCUITest Test Plan

背景

在编写了越来越多的测试用例之后,发现有时候想单独执行某一批用例。

甚至自己控制新编写的功能用例要不要被加入当前的执行过程。

为了方便团队协作和不同场景下执行需求的管理,尝试使用 xctestplan 来进行控制。

一、什么是测试计划

Xcode 测试计划提供了一种运行具有各种测试配置的测试选择的方法。

测试计划是一个JSON文件,具有.xctestplan扩展名,您可以将其添加到Xcode项目中并从方案引用。

文件格式Demo

image.png

它有三个主要因素:

  • 测试目标:一个或多个测试目标(单位或用户界面)。您不必在测试目标中运行所有测试。对于每个测试计划,您可以选择计划将运行的测试以及测试是否可以并行运行。

  • 默认选项:一组默认(共享)设置,可以被特定配置覆盖。这些是您通常在方案编辑器中找到的设置:启动参数、本地化设置、屏幕截图设置、文本执行(字母或随机)、运行时调试选项Sanitizer、线程检查器和malloc保护。

  • 配置:覆盖默认选项的一个或多个配置。测试计划多次运行所选测试,每次配置一次。

它们有什么用?

测试计划的一些可能用途:

  • 使用不同的调试选项Sanitizer/诊断剂运行测试:
    不能同时启用地址和线程调试选项Sanitizer进行测试。
    使用测试计划,我们可以创建两种配置,一种启用地址调试选项Sanitizer,另一种启用线程调试选项Sanitizer。运行测试计划,然后运行我们的测试两次,每种调试选项Sanitizer一次。
    您可以轻松地添加其他配置以与malloc诊断一起运行。

  • 测试多个本地化:
    为您支持的每种语言创建配置。您可以将应用程序语言和区域设置为配置的一部分。这也是为本地化者生成屏幕截图的好方法。

  • 使用特定配置运行选定的测试:
    例如,您不希望性能测试并行运行。

  • 不同的测试范围:
    我喜欢在点击 Command + U 时默认运行一组快速测试。
    我还想要一套针对几种配置运行的全套单元、用户界面和性能测试。测试计划使设置起来更容易。

如果您已经通过创建不同的方案来执行上述一些操作,您可能会发现您可以使用一个或多个测试计划合并到一个单一方案中。

二、创建测试计划

Xcode菜单栏:

Product > Test Plan > New Test Plan

指定这个测试计划包含哪些用例

image.png

(切换tab:Tests、Configurations)更改测试计划的配置

image.png

比如这里可以配置,UI自动化执行成功的时候是否删除截图。建议配置成只有失败的case再保留截图。

配置一个 UITest Scheme,使得它使用测试计划

image.png
image.png

三、命令行运行不同的测试计划

xcodebuild test  

-scheme SingleUITestUITests  \

-destination 'platform=iOS,id=ff7f6dc06b595abbe4d86a18a37b1a5dcde3aee0'  \

-workspace SingleUITest.xcworkspace  \

-only-testing:SingleUITestUITests/CourseWapTraverse  \

-testPlan KewapTestPlan
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容