可以防止 XCode 在调用 `XCUIApplication().terminate()` 后调用调试器
Possible to prevent XCode from envoking debugger after calling `XCUIApplication().terminate()`
我正在使用 UITest 测试 objective C 应用程序,使用 swift 进行测试。
XCode 7.3,模拟 9.3
每个测试用例都会调用 XCUIApplication.launch(),它会通过发送 SIGKILL 杀死任何 运行 应用程序。
Xcode 将此视为崩溃 - 在 main.m
上调用调试器。要继续测试套件,我只需单击调试器中的继续按钮。
点击继续后,我的日志显示:
Message from debugger: Terminated due to signal 9
这种情况令人沮丧,因为它发生在我 1/4 的测试用例之后。导致我无法专注于我正在编辑的文档并导致我的测试套件挂起,直到我点击继续。
有办法解决这个问题吗?
我们遇到了同样的问题。经过一些调试后,我们发现这是由于为您的应用启用了 Background Modes
造成的。
我们的解决方案是为开发和测试创建一个新目标,将所有 Background Modes
禁用。
仅供参考,在项目设置的 Capabilities
部分中,它被标记为 Background Modes
将此 Off
设为关键。或者,您可以从 Info.plist
中删除 Require background modes
(又名 UIBackgroundModes
)键
您可以在使用 xCode 终止后进行调试 and/or 测试。在菜单中:
- 调试
- 附加到进程
- 选择
Likely Targets
或By Process Identifier (PID)
我正在使用 UITest 测试 objective C 应用程序,使用 swift 进行测试。
XCode 7.3,模拟 9.3
每个测试用例都会调用 XCUIApplication.launch(),它会通过发送 SIGKILL 杀死任何 运行 应用程序。
Xcode 将此视为崩溃 - 在 main.m
上调用调试器。要继续测试套件,我只需单击调试器中的继续按钮。
点击继续后,我的日志显示:
Message from debugger: Terminated due to signal 9
这种情况令人沮丧,因为它发生在我 1/4 的测试用例之后。导致我无法专注于我正在编辑的文档并导致我的测试套件挂起,直到我点击继续。
有办法解决这个问题吗?
我们遇到了同样的问题。经过一些调试后,我们发现这是由于为您的应用启用了 Background Modes
造成的。
我们的解决方案是为开发和测试创建一个新目标,将所有 Background Modes
禁用。
仅供参考,在项目设置的 Capabilities
部分中,它被标记为 Background Modes
将此 Off
设为关键。或者,您可以从 Info.plist
Require background modes
(又名 UIBackgroundModes
)键
您可以在使用 xCode 终止后进行调试 and/or 测试。在菜单中:
- 调试
- 附加到进程
- 选择
Likely Targets
或By Process Identifier (PID)