Xcode 7 UI测试顺序

6

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

谢谢您


为了我的测试,我编写了几个辅助函数。loginIfNeeded() 检查登录页面上唯一的标签,然后登录用户。类似的 logoutIfNeeded() 可以在任何需要从登录屏幕开始的测试中使用。 - JMFR
@JMFR 我是新手编写UI测试用例。你能帮我或者给我一些编写辅助函数的例子吗?谢谢。 - Urmi
3个回答

9
一个好的测试套件不应依赖于以特定顺序执行。如果你的测试提示存在“test pollution”,则需要添加通用初始化逻辑(例如,记录用户登录信息)到相关测试的setUp()方法中。或者创建一个助手方法并在类之间共享。结合每次测试重新启动应用程序,这些措施应该使您的测试顺序无关紧要。

谢谢您的回复。我对这一切都很新,目前几乎没有编程经验。我找到了您的博客,它帮了我很多。 - Sandmaster
虽然这基本上是正确的,但我使用UI测试来对UI进行快照并获得视觉确认,因此它们的顺序对我仍然很重要。 - Kane Cheshire

6

XC测试极其容易出现错误。有时似乎风向或地球自转的速度会决定您是否会遇到随机故障。我找到的一个解决方法是,在tearDown()函数中调用以下内容,可以在一定程度上缓解这些令人沮丧的问题:

XCUIApplication().terminate()

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


3
“不可思议”这个词语已经言不及义。 - CommaToast
我对此感到好笑,但接着又哭了))) 因为我的测试不一致地失败了,所以我无法正确地进行调试,因为甚至需要时间来重现这个失败..... 该死 - Async-

0

我知道这个答案有点过时了。但是使用测试计划(TestPlans),你可以控制测试的执行顺序以及在测试会话期间执行的测试。

你只需要打开你的目标方案,并将其转换为使用TestPlans enter image description here ,然后在选择产品 > 方案 > 转换方案以使用测试计划下选择你的测试计划并选择要运行的测试。

enter image description here

配置 选项卡下,您可以找到 执行顺序 设置 输入图像描述

我知道这不是您所寻找的完美解决方案。但至少它可以给您一些提示,如何命名一些测试以按某种顺序执行。例如,第一个测试可以是 testAuth(用于验证用户),然后按字母顺序命名其他测试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接