xcode – 使用断言失败XCTestCase,而测试继续运行,但不停止其他测试

我试图使用XCTest框架测试我的应用程序.

如果某些逻辑条件成立(使用断言),我希望我的单个测试用例失败.
我不想让测试用例中的其余代码运行,因为这可能会导致问题(例如访问空指针)
我还希望测试用例的其余部分正常运行,只是失败的测试被标记为失败.

我注意到XCTestCase有一个名为continueAfterFailure的属性.
但是,将其设置为YES会导致失败的测试在断言之后继续执行,并将其设置为NO导致其余的测试根本不运行.

有没有解决这个问题?
谢谢,
约阿夫

解决方法

帕斯卡的答案给了我这个想法,以达到这个正确.当断言失败时,XCTool的行为就像OCUnit:测试用例的执行立即被中止,tearDown被调用,并且运行下一个测试用例.

简单地覆盖你的基类(从XCTestCase类继承的)中的invokeTest方法

- (void)invokeTest
{
    self.continueAfterFailure = NO;

    @try
    {
        [super invokeTest];
    }
    @finally
    {
        self.continueAfterFailure = YES;
    }
}

而已!

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...