用途:Swift Testing 是 Swift 的现代测试框架(Xcode 16+、Swift 6+),用于编写新单元测试,并在迁移过程中与 XCTest 共存。UI 自动化、性能 API、Objective-C 异常测试和常见快照测试工具仍使用 XCTest。
主要能力:用 @Test 声明测试并支持显示名、标签、禁用、条件启用、bug 引用、时间限制等 traits;用 #expect 记录失败但继续执行,用 #require 记录失败并停止测试(类似 XCTUnwrap);支持错误类型与具体错误值断言、@Suite 组织测试、withKnownIssue 标记已知问题、Attachment.record 附加诊断数据、processExitsWith 退出测试,以及参数化测试、异步测试、标签过滤等。
使用方式:测试不继承 XCTestCase,可在自由函数或 struct、class、actor 等套件类型上声明 @Test;迁移时逐文件或逐套件进行,并对照发现、通过、失败、跳过数量。迁移默认映射为 XCTAssert* 到 #expect(...),XCTUnwrap 或后续检查所需值到 try #require(...),XCTFail 或手动无条件问题到 Issue.record("...")。
限制与注意:测试默认并行执行,不应假设顺序、共享套件实例或对可变状态的独占访问;@Suite(.serialized) 仅用于真正需要独占外部状态的场景,不表达逻辑顺序。@available 应放在单个 @Test 函数上,而非套件类型。退出测试、Test.cancel、警告严重级别、图片附件等高级 API 有具体工具链与运行时门槛,需按资料中的版本门控使用。资料未提供收费、价格或平台支持范围等额外信息。