在调用`XCUIApplication()。terminate()`之后,可以防止XCode激发debugging器

我正在使用UITest来testing客观的C应用程序,使用Swift进行testing。

XCode 7.3,sim 9.3

每个testing用例都会调用XCUIApplication.launch(),通过发送SIGKILL来杀死正在运行的应用程序。

Xcode将其视为崩溃 – 在main.m上调用debugging器。 要继续testing套件,只需单击debugging器中的继续button即可。

打继续后,我的日志说:

 Message from debugger: Terminated due to signal 9 

这种情况令人沮丧,因为它发生在我的四分之一的testing用例之后。 导致我失去对正在编辑的文档的关注,并导致我的testing套件挂起,直到我继续。

有没有解决的办法?

我们遇到了同样的问题。 经过一些debugging后,我们发现这是由于您的应用程序启用了Background Modes引起的。

我们的解决scheme是为禁用所有Background Modes开发和testing制定新的目标。

仅供参考,在项目设置的Capabilities部分中,将其标记为Background Modes将其Off是关键。 或者,您可以从Info.plist中删除Require background modes (又名UIBackgroundModes )键

您可以在使用xCode终止之后进行debugging和/或testing。 在菜单中:

  1. debugging
  2. 附加到进程
  3. Likely TargetsBy Process Identifier (PID)