已归档,因为 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 支持