在调用`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。 在菜单中:
- debugging
- 附加到进程
- 从
Likely Targets
或By Process Identifier (PID)