为什么XCode启动应用程序两次以运行UI测试?

时间:2017-09-15 09:45:41

标签: ios xcode xcode-ui-testing

我正在经历一个相当繁琐的过程,让一堆UI测试再次运行,但是为了运行每个测试,看起来XCode在模拟器中启动应用程序两次。一劳永逸,然后又一次真实地运行测试。

我的配置是否有问题会导致这种情况发生,或者这种行为是否符合预期?

1 个答案:

答案 0 :(得分:4)

这是预期的行为。您所看到的实际上不是同一个应用程序启动两次,而是两个不同的应用程序:

首次推出的是 UITestRunner 应用。在启动UITest时,Xcode会构建一个与您的应用程序交互的UITestRunner应用程序。此跑步者应用程序是必需的,因为UITests的工作方式与单元测试不同。

单元测试在您的应用范围内工作。换句话说,他们可以访问您的所有应用程序的代码,变量和状态。因此,在运行单元测试时,只会启动您的应用程序。

UITests 像使用者一样“使用”您的应用。他们无法访问您应用的代码。他们所能做的就是使用用户界面与应用程序进行交互。 UITests运行的过程与您的应用程序不同。这就是UITestRunnerApp的作用。它综合了您的应用可以响应的事件。换句话说:UITestRunnerApp模拟真实用户。

因此,在启动UITest时,您确实会看到两个应用程序正在启动。首先是UITestRunner应用程序(将立即发送到后台),然后是你的应用程序。