Xcode 7 UI 测试顺序

Posted

技术标签:

【中文标题】Xcode 7 UI 测试顺序【英文标题】:Xcode 7 UI Test Order 【发布时间】:2015-11-13 18:13:45 【问题描述】:

我有几个 UI 测试可以单独或分组成功。我最终将我的测试分解为特定的类并以这种方式运行它们。我遇到的问题是 Xcode 按字母顺序执行 UI 测试,而不是按写入/显示的顺序。关于如何解决这个问题的任何想法?

谢谢

【问题讨论】:

为了我的测试,我写了几个辅助函数。 loginIfNeeded() 检查仅在登录页面上的标签,然后登录用户。类似的logoutIfNeeded() 可用于任何需要从登录屏幕开始的测试。 @JMFR 我是编写 UI 测试用例的新手。你能帮我吗,或者给我一些如何编写帮助函数的例子。谢谢 【参考方案1】:

一个好的测试套件不应该依赖于以特定的顺序执行。如果是这样,您可能会受到一些测试污染。我会将常见的初始化逻辑(例如登录用户)添加到相关测试的 setUp() 方法中。或者创建一个辅助方法并在类之间共享。再加上每次测试都重新启动应用程序,应该使测试的顺序无关紧要。

【讨论】:

感谢您的回复。我对这一切都很陌生,目前对代码的经验很少。我确实找到了你的博客,而且很有帮助。 虽然这在很大程度上是正确的,但我使用 UI 测试来快照 UI 并获得视觉签名,因此它们的顺序对我来说仍然很重要。【参考方案2】:

XC 测试存在令人难以置信的错误。有时,似乎风向或地球自转速度将决定您是否遇到随机故障。我发现 在某种程度上 可以缓解这些令人沮丧的问题的一个解决方法是,如果您将其称为 tearDown() 函数:

XCUIApplication().terminate()

其中 XCUIApplication() 是您正在运行的应用程序。

【讨论】:

“难以置信”是轻描淡写 我对此笑了,但后来我哭了)))因为我的测试不一致地失败,所以我也无法正确调试它,因为甚至重现失败都需要时间...... f %#k

以上是关于Xcode 7 UI 测试顺序的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xcode 中运行单个 UI 测试

XCode 13 警告:不推荐以手动顺序构建目标 - 检查“为命令行构建并行构建”但不存在这样的 UI 选项?

Xcode 7 之前的项目的 Xcode 7 UI 测试用例

Xcode 7 UI 测试与 Xcode Bot 的集成程度如何?它是不是显示 UI 测试步骤?

设置 UI 测试 Xcode 7 后单元测试永远不会运行

在 UI 测试期间,如何使用 Xcode 7 截取我的 UI 截图?