【发布时间】:2020-08-20 13:09:52
【问题描述】:
我正在运行一些 xcode 测试(使用 XCTest/XCUITest)。
我需要在每次测试结束时进行一些清理,即使手动停止测试(通过 xcode 中的方形停止按钮)。
不幸的是,在这种情况下,tearDownWithError 没有被调用。
我怎样才能编写一段可以保证始终运行的代码,即使手动停止测试也是如此?
【问题讨论】:
标签: ios xcode testing swift5 xcuitest
我正在运行一些 xcode 测试(使用 XCTest/XCUITest)。
我需要在每次测试结束时进行一些清理,即使手动停止测试(通过 xcode 中的方形停止按钮)。
不幸的是,在这种情况下,tearDownWithError 没有被调用。
我怎样才能编写一段可以保证始终运行的代码,即使手动停止测试也是如此?
【问题讨论】:
标签: ios xcode testing swift5 xcuitest
您是否已经尝试过覆盖 tearDown()?我认为这会有所帮助
【讨论】:
你很可能不能。停止按钮基本上将SIGKILL 发送到正在运行的测试套件。虽然您可以尝试安装一个信号处理程序来拦截 SIGKILL 并进行清理,但我认为这很难可靠地完成。
将精力集中在重新设计测试套件以在面对错过的清理时具有弹性可能会更有成效。在清理过程中您究竟需要做什么?
【讨论】: