Xcode 测试:清理代码,即使停止

Posted

技术标签:

【中文标题】Xcode 测试:清理代码,即使停止【英文标题】:Xcode test : clean up code, even when stopped 【发布时间】:2020-08-20 13:09:52 【问题描述】:

我正在运行一些 xcode 测试(使用 XCTest/XCUITest)。

我需要在每次测试结束时进行一些清理,即使手动停止测试(通过 xcode 中的方形停止按钮)。

不幸的是,在这种情况下,tearDownWithError 没有被调用。

我怎样才能编写一段可以保证始终运行的代码,即使手动停止测试也是如此?

【问题讨论】:

【参考方案1】:

您是否已经尝试过覆盖 tearDown()?我认为这会有所帮助

【讨论】:

我确实覆盖了tearDown,但是当手动按下“STOP”时它不会被调用。【参考方案2】:

你很可能不能。停止按钮基本上将SIGKILL 发送到正在运行的测试套件。虽然您可以尝试安装一个信号处理程序来拦截 SIGKILL 并进行清理,但我认为这很难可靠地完成。

将精力集中在重新设计测试套件以在面对错过的清理时具有弹性可能会更有成效。在清理过程中您究竟需要做什么?

【讨论】:

感谢您的回答。在清理过程中,我需要创建一个附件。 您将如何尝试为测试类安装信号句柄? “创建附件”是什么意思? 我的意思是创建一个 XCTAttachement。不过不要太担心,这与我的问题无关。

以上是关于Xcode 测试:清理代码,即使停止的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 4.3.2,在模拟器上运行的问题

Xcode 更新后过渡停止工作

想要在 Xcode 中的 UI 测试期间在测试运行后停止调试控制台清除

测试在 xcode 8 TEST_HOST 错误下停止工作

Xcode UI 测试 - 当测试套件中的任何给定测试失败时停止测试?

停止和卸载 Xcode 服务