如果遇到fatalerror,我如何停止Xcode iOS单元测试?
在我有10个单元测试的情况下,但是它发生了它为单元测试5号调用的代码有编码问题(在这种情况下**编码问题是在测试用例和设置代码**中)和抛出致命错误。因此,在这种情况下,单元测试在那里停止,并且不继续该测试类中的其他测试用例。
(不确定这是否是良好单元测试的预期操作/过程?)
答案 0 :(得分:7)
尝试
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
continueAfterFailure = false
}
答案 1 :(得分:1)
没有简单的解决方法。在未捕获(objc)异常或失败的assert
的情况下,运行单元测试的进程确实接收到mach异常或unix信号。
Matt Gallagher为此提供了一个很好的解决方案,他提出了in this blog post。
答案 2 :(得分:1)
我遇到的一个相关问题是当它失败时用断点停止单元测试,这样我就可以看到问题,而不必点击或滚动大量的测试输出。
单元测试失败断点很简单,但不容易找到。
Xcode 8+有一个新的断点可以添加,称为"测试失败断点"。
答案 3 :(得分:0)
最好在任何地方编写安全代码,包括单元测试。
关于你的问题,正如Oleg Danu回答的那样,你应该设置continueAfterFailure = false
。
下一步是在测试崩溃之前添加以下内容。
var optionalVariable: Int?
XCTAssertNotNil(optionalVariable)
我建议将其添加到setUp()
通过这种方式,您的测试将在崩溃Xcode之前停止,并且您不需要设置任何断点。