我正在尝试一次运行我的UI测试。当我单独运行它们时,所有测试都能正常运行,但是当我自动运行它们时,测试都会失败,因为Xcode不会更新它在应用程序中的位置,以成功运行其他测试。
所以只是为了澄清,我的第一个测试是signUpTest,所以我将运行该测试,它将工作,然后它将进入第二个测试,即signUpMyInfo测试。我的问题是,第二次测试只会在应用程序移动到第二个视图控制器后运行,这是第一个单元测试结束的地方,但是当第二次测试由于某种原因开始时,Xcode会将应用程序抛回第一个视图控制器,导致第二次测试失败。
简而言之,我不清楚为什么应用程序在第一个测试成功通过后返回到第一个视图控制器,而不是保留在第二个视图控制器上并从那里运行第二个测试。
另外值得注意的是,这个问题并不总是发生,Xcode有时会成功将我带到下一个视图控制器,第二个测试通过正常,但这个问题发生得足够多,我不得不打扰堆栈上的某个人来帮助我解决它:p
答案 0 :(得分:1)
在Xcode运行的每个测试结束时,它将关闭应用程序,并且您需要在每次测试开始时再次启动应用程序。这是为了鼓励测试独立性,这允许每个测试独立,因此您知道如果测试失败,它会因为测试所做的事情而失败,而不是由于另一个测试所做的事情。这使得测试失败更容易诊断,并使您的测试结果更具信息性和准确性。
您需要在第二个测试中添加代码,以便从第一个视图控制器移动到第二个视图控制器。乍一看,这似乎是重复,但正如上面所解释的,这对您的测试套件来说更有利。