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

UI Tests Pass Manually, Fail When Ran Automatically

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

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

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

同样值得注意的是,这个问题并不总是会发生,Xcode 有时会成功地把我带到下一个视图控制器,在那里第二次测试很好,但这个问题发生得太多了,我不得不打扰有人在堆栈上帮助我解决它:p

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

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