跳过 Xcode 中的多项测试

Skip multi tests in Xcode

我正在我的 Swift 应用程序中编写单元测试。

我有一些测试想跳过,使用标志 shouldSkip,比如 -

if shouldSkip {
     throw XCTSkip()
}

问题是—— 我不希望所有的测试都必须一遍又一遍地写这一行+所有跳过的测试都需要标记为“已跳过”(灰色箭头,不通过或失败)。

所以我考虑覆盖 invokeTest 或使用 setuptrue 中的标志时跳过所有测试,例如 -

override func setUp() {
        
        if shouldSkip {
          throw XCTSkip()
        } 
        super.setUp()
}

但我无法将测试标记为已跳过(仅通过或失败)

关于如何跳过(并标记为已跳过)大量测试(是否在同一文件中)有什么想法吗?

我知道测试计划和方案,但我需要测试 运行 并被跳过以反对不 运行 测试。

您需要抛出 XCTSkip,因为它是一个 Error,简单地创建它对您的测试结果没有影响。

或者您可以使用 XCTSkipIf 函数,在满足传入条件的情况下跳过测试。

所以在你想跳过的测试中,只需调用XCTSkipIf(shouldSkip)。或者如果你想避免在所有测试中都写它,你可以在 setUpWithError 中完成,这是 setup.

的抛出变体

而不是 if shouldSkip { XCTSkip() },正确的方法是 XCTSkipIf(shouldSkip)if shouldSkip { throw XCTSkip() }

使用这 2 种解决方案中的一种将正确地将测试标记为已跳过。

有关详细信息,请参阅 Methods for Skipping Tests 文档页面。