【问题标题】:UI Tests Pass Manually, Fail When Ran AutomaticallyUI 测试手动通过,自动运行失败
【发布时间】:2017-10-22 12:32:43
【问题描述】:

我正在尝试一次运行我的 UI 测试。当我单独运行它们时,所有测试都可以正常运行,但是当我自动运行它们时,所有测试都会失败,因为 Xcode 不会更新它在应用程序中的位置以成功运行其他测试。

所以澄清一下,我的第一个测试是 signUpTest,所以我将运行该测试,它会工作,然后它会进入第二个测试,即 signUpMyInfo 测试。我的问题是,第二个测试只会在应用程序移动到第二个视图控制器后运行,这是第一个单元测试结束的地方,但是当第二个测试开始时,Xcode 将应用程序扔回第一个视图控制器,导致第二次测试失败。

简而言之,我不清楚为什么应用程序在第一个测试成功通过后返回到第一个视图控制器,而不是留在第二个视图控制器上并从那里运行第二个测试。

另外值得注意的是,这个问题并不总是发生,Xcode 有时会成功地将我带到第二个测试通过的下一个视图控制器,但是这个问题发生得足够多,我不得不打扰堆栈上的某个人来帮助我解决它:p

【问题讨论】:

    标签: ios swift xcode unit-testing xcode-ui-testing


    【解决方案1】:

    每次测试 Xcode 运行结束时,它都会关闭应用程序,您需要在每次测试开始时再次启动应用程序。这是为了鼓励测试独立性,允许每个测试独立,这样你就知道如果测试失败,它失败是因为测试做了什么,而不是另一个测试做了什么。这样可以更轻松地诊断测试失败,并使您的测试结果更加丰富和准确。

    您需要在第二个测试中添加代码以从第一个视图控制器移动到第二个。乍一看这似乎是重复,但如上所述,这是为了您的测试套件的更大利益。

    【讨论】:

    • 知道了。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 2011-03-05
    • 2021-06-14
    相关资源
    最近更新 更多