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

2023-12-29

我正在尝试使用 XCTest 框架测试我的应用程序。

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

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

这个问题有解决办法吗?


帕斯卡的回答给了我正确实现这一目标的想法。现在,当断言失败时,XCTool 的行为类似于 OCUnit:测试用例的执行立即中止,调用tearDown 并运行下一个测试用例。

只需重写该方法即可invokeTest在您的基类(从 XCTestCase 类继承的基类)中:

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

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

就是这样!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用断言使 XCTestCase 失败,测试不会继续运行,但不会停止其他测试 的相关文章

  • 如何将iPhone/iPad应用程序更改为仅iPhone?

    我有点愚蠢 将我的应用程序构建为同时针对 iPhone 和 iPad 而实际上它应该只针对 iPhone 如何更改设置以使构建仅适用于 iPhone 我实际上已经完成了应用程序的编码并准备提交它 所以希望这只是更改一些晦涩的项目设置的情况
  • 缺少常规选项卡

    我刚刚切换到使用 Xcode 5 我已经用一些需要更改的其他设置更改了我的应用程序的名称 但是当我执行此操作时 我注意到我的 常规 选项卡丢失了 有谁知道为什么会发生这种情况 只是快速更新如何在 Xcode 8 中执行此操作
  • 个人帐户开发者之间的 Apple 开发/分发证书

    我一直在到处寻找有关处理证书的正确答案 想象一下以下帐户 Joe拥有个人 Apple 帐户 但他根本不会编码 他只是发布了该应用程序并将其称为自己的 Bob还有一个个人 Apple 帐户 Bob 是一位编码专家 Joe 付费让他开发他的第一
  • 致命错误:在字典中发现“地理编码地标”类型的重复键。 (Mapbox 地理编码器)

    我引用 这通常意味着要么该类型违反了 Hashable 的要求 要么此类字典的成员在插入后发生了变化 我正在使用 Mapbox Geocoder 当发生此运行时错误时 我的 XCode 将我带到线程 1 0 swift runtime on
  • 通过 Instruments 使用 UIAutomation 操作 iphone 时,什么是 UIATargetHasGoneAWOLException。

    我正在使用 UIAutomation 通过 Xcode 中的 Instruments 在 iPhone 上执行某些操作 但遇到了一个奇怪的异常 UIATargetHasGoneAWOLException 有人知道这个异常是什么意思吗 我发现
  • 相当于 Interface Builder 中 UIButton 的动态类型“自动调整字体”设置?

    UILabel 有一个Dynamic Type Automatically Adjusts FontInterface Builder 属性检查器中的复选框 Interface Builder 中是否有等效项用于自动调整 UIButton
  • Xcode 无法找到 strip-frameworks.sh 目录

    我最近将 Xcode 更新到版本 7 1 其中包括 Swift 2 1 我安装了 Swift 2 1 没有遇到任何问题 在尝试运行我的项目后 我意识到我需要获取最新版本的 Realm 因为之前的版本不支持 Swift 2 1 我删除了旧框架
  • 如何快速更改按钮图像?

    我正在开发一个有按钮的应用程序 该按钮没有文本 图像或背景 所以我想做的就是在viewDidLoad函数中给它一个图像 这就是我所拥有的 IBOutlet var tapButton UIButton override func viewD
  • 将 Xcode 的测试类助理编辑器与 Swift 类结合使用

    在 Xcode 中工作时 在助理编辑器中提取单元测试用例通常会很好 目前 我一直在手动选择测试文件 但我看到助理编辑器有一个选项Test Classes 我试图让这个选项自动提取我的测试文件 但我似乎无法让它工作 是否需要某种配置 它不适用
  • 删除 UINavigationBar 下的 1px 边框 - 不起作用

    IBOutlet var navBar UINavigationBar self navBar setBackgroundImage UIImage forBarMetrics UIBarMetrics Default self navBa
  • 如何在 xcode 中使用相同的 nib 文件创建多个窗口

    我有一个使用表格视图作为界面的 iPhone 应用程序 每次用户点击其中一个表格单元格时 我想向用户显示另一个窗口 然而 我推入导航控制器的窗口的用户界面非常相似 因此 我决定制作一个 通用 nib 文件 以便在该通用 nib 文件的文件所
  • Xcode 6 Bug:Interface Builder 文件中的未知类

    我升级到 Xcode 6 beta 4 现在我的应用程序不断崩溃并显示以下消息 Interface Builder 文件中存在未知的类 X 它崩溃是因为据说 Xcode 找不到我在故事板中链接的自定义类 但它显示它们在 Xcode 界面中正
  • Xcode 中的目标、可执行文件和产品之间有什么区别

    在 Xcode 的 组和文件 面板下 目标 可执行文件和产品之间有什么区别 Target 定义如何构建产品 目标将构建产品所需的文件和指令组织成一系列可以采取的构建操作 Product 建立目标的结果 MyAppName app 换句话说
  • 如何禁用导航控制器(Swift)内特定视图控制器的自动旋转? [复制]

    这个问题在这里已经有答案了 上面根本没有答案 在导航控制器内的特定 不是全部 视图控制器禁用自动旋转时遇到问题 类似的问题并不涉及禁用特定视图控制器的自动旋转的能力 而是涉及禁用导航控制器内所有视图控制器的自动旋转的能力 我的导航控制器包含
  • Xcode 9 - 框架断点

    在 Xcode 7 和 8 中 我已经能够通过在也包含框架项目的 xcworkspace 中运行包含应用程序来调试我一直在开发的框架 如果我在框架中设置断点 它们就会在运行时被触发 在 Xcode 9 beta 6 中 情况不再如此 到目前
  • iOS8beta5中无法使用UIWebView打开PDF文件

    I have 工作项目我在其中显示UIWebView 中的 pdf 文件在测试我的应用程序时iOS8beta5 与 XCode5 它不起作用 In log它显示failed to find PDF header PDF not found
  • 从软件查找服务返回无效结果

    我尝试通过 XCode 组织者提交 iOS 应用程序 但在身份验证后失败 组织者说 从软件查找服务返回的结果无效 我怎么解决这个问题 检查 iTunes Connect 中您的应用程序状态是否为 等待上传 您可以更改状态以按 准备上传二进制
  • Xcode 中的 NSObject 描述和自定义摘要

    我覆盖对象的 NSString description但是 Xcode 总是显示error summary string parsing error在变量视图的摘要字段中 我当前的实现如下 NSString description retu
  • 如何在 iOS 6 中强制 UIViewController 为纵向

    As the ShouldAutorotateToInterfaceOrientation在 iOS 6 中已弃用 我用它来强制特定视图仅肖像 在 iOS 6 中执行此操作的正确方法是什么 这仅适用于我的应用程序的一个区域 所有其他视图都可
  • 游戏中心玩家显示名称在沙盒中始终为“我”

    我使用用户的游戏中心显示名称和玩家 ID 来维护他们在我的服务器上的个人资料 当我进行测试时 一切似乎都正确执行 但我的沙箱帐户的用户显示名称显示为 Me 而不是附加到我的帐户的显示名称 Billybobbo 这应该在沙盒模式下发生吗 Co

随机推荐