【发布时间】:2018-03-25 03:16:06
【问题描述】:
是否有任何已知方法可以影响 XCUITest 调用测试方法的顺序?目前,以何种顺序调用哪个测试方法似乎完全是任意的。
这使得定义特定顺序成为不可能。一般来说,Xcode 管理 XCUITest 运行的方式是次优的,因为您必须为每个测试用例定义一个测试函数。最好只从一种方法启动一个完整的测试会话,这样人们就可以在例如会话:特性:场景中构建自己的测试。
...这正是我想要做的,因为我们遵循 Calabash 风格的测试结构,而我围绕 XCUITest 编写的框架提供了许多附加功能(例如 Testrail 集成)。
我尝试以这样一种方式实现该框架,即所有功能和场景都从一个test() 方法组织和启动。如果 Xcode 允许,这将起作用,但事实证明,在每个场景之间终止和启动应用程序是有问题的,因为它会导致主线程停止甚至崩溃。因此,我为我们的框架添加了支持,以使用老式 Xcode 方式来完成,该方式必须为每个测试定义一个方法,但是 Xcode 弄乱了顺序,从而扰乱了 Testrail 的日志和报告的生成。
【问题讨论】:
-
据我所知,您无法定义或更改顺序。事实上,根据 Ash Furrow 的雷达,测试调用应该是随机的:openradar.me/radar?id=4937505996537856。
-
我认为我们不应该选择测试是否应该是随机的。无论如何,我认为以数字方式命名测试方法似乎总是按顺序执行它们,例如 test1、test2、test3 并且因为我们有自己的报告措施并且不关心 Xcode 报告命名对我们来说是可以的。
-
但是你不应该期望这种行为永远存在。据我所知,这没有记录。就是现在的样子。
标签: ios xcode automated-tests xctest xcuitest