代码之家  ›  专栏  ›  技术社区  ›  benjamin852

UI测试手动通过,自动运行时失败

  •  0
  • benjamin852  · 技术社区  · 8 年前

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

    为了澄清,我的第一个测试是signUpTest,所以我将运行该测试,它会工作,然后它将进入第二个测试,即signUpMyInfo测试。我的问题是,只有当应用程序移动到第二个视图控制器时,第二个测试才会运行,第一个单元测试在此结束,然而,当第二个测试出于某种原因开始时,Xcode将应用程序抛出回第一个视图控制器,导致第二个测试失败。

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

    同样值得注意的是,这个问题并不总是发生,Xcode有时确实会成功地将我扔到下一个视图控制器,在那里第二个测试顺利通过,但这个问题发生得太多了,我不得不麻烦堆栈中的某个人帮我解决它:p

    1 回复  |  直到 8 年前
        1
  •  1
  •   Oletha    8 年前

    在每个测试Xcode运行结束时,它将关闭应用程序,您需要在每个测试开始时再次启动应用程序。这是为了鼓励测试独立性,允许每个测试独立运行,这样您就知道,如果一个测试失败,它失败是因为该测试做了什么,而不是因为另一个测试做了什么。这使测试失败更容易诊断,并使测试结果更具信息性和准确性。

    您需要在第二个测试中添加代码,才能从第一个视图控制器移动到第二个视图控制器。乍一看,这可能看起来像是重复,但如上所述,这是为了更好地利用您的测试套件。