XCTesting

已归档,因为 Xcode 16 直接支持 Swift Testing

一个 Swift 宏,用于围绕为 swift-testing 编写的测试生成兼容 XCTest 的脚手架

这允许在即使您不需要比入门指南部分更多内容的情况下,显示测试套件和用例占位符。此处托管了一个正在进行的文档:+文档

入门指南

安装

首先将 XCTesting 添加为 Swift Package 或 Xcode 项目的依赖项

// Dependency
.package(url: "https://github.com/NoahKamara/swift-xctesting.git", from: "0.1.0")

// Target Dependency
.product(name: "Testing", package: "swift-testing")

用法

只需将 @XCTesting 属性添加到测试或套件,它将生成一个带有虚拟测试的 XCTestCase

@XCTesting
@Suite
struct MyTests {
    @Test(arguments: [1,2,3])
    func example(arg: Int) {
        #expect(arg > 0
    }
}

// Expansion from XCTesting
class MyTests_XCTest: XCTestCase {
    func testExample() async throws {
        try await Tests.run(suite: MyTests.self, testName: "testExample(arg:)", hostedBy: self)
    }
}

如果您将 @XCTesting 应用于独立的测试函数,它将生成一个只有一个虚拟测试的 XCTestCase

请注意:这可能会使 Xcode 的测试输出混乱

@Test(arguments: [1,2,3])
func standaloneExample(arg: Int) {
    #expect(arg > 0)
}

// Expansion from XCTesting
class standaloneExample_XCTest: XCTestCase {
    func testStandaloneExample() async throws {
        try await Tests.run(testName: "testExample(arg:)", hostedBy: self)
    }
}

贡献

随时欢迎贡献!

该项目的范围应保持在桥接 swift-testing 和 XCTest 以获得 IDE 支持

路线图