Swift Testing 是现代测试库,支持 Swift 并发和并行运行
deep_candidateJerry(Swift Testing 团队)开场:Xcode 16 引入的现代测试库。@Test macro 声明,#expect macro 断言。Swift 并发支持,并行运行。XCTest 仍适用于 UI 自动化、性能测试和 Objective-C 异常场景。
正在接入 Apple HLS 视频源…
Jerry(Swift Testing 团队)开场:Xcode 16 引入的现代测试库。@Test macro 声明,#expect macro 断言。Swift 并发支持,并行运行。XCTest 仍适用于 UI 自动化、性能测试和 Objective-C 异常场景。
新旧测试可在同一 target 共存。Limited(cross-framework 降级为警告)、complete(保持为错误)、strict(触发致命错误立即停止)。Xcode 27 默认启用 interoperability。
Complete mode 使问题保持为错误不丢失。Strict mode 遇到 XCTest API 时立即停止,精确定位替换位置。Package 项目通过 swift-tools-version 6.4 启用 complete mode。
XCTSkip→Test.cancel,continueAfterFailure→#require。条件测试用 enabled/disabled trait。参数化测试将循环简化为函数参数,自动并行运行,失败结果清晰可辨。
Exit tests 在子进程中测试 precondition failure 等崩溃路径,不影响其他测试。Swift Testing 是 SwiftLang 开源项目,支持 FreeBSD,通过 Swift Evolution 演进。
Limited(初期,不阻断测试)、complete(中期,不丢失问题)、strict(后期,精确定位需替换的 XCTest API)。团队按节奏逐步升级。
嵌套循环耗时且失败不明确。参数化测试将输入定义为参数,Swift Testing 自动并行执行所有组合。失败时清晰显示哪个输入失败。 这是该 session 的核心论点,支撑整个叙事链在该主题上的完整性。
Precondition failure 等崩溃路径传统上难以测试。Exit tests 在隔离子进程中运行,崩溃不影响主进程。 这是该 session 的核心论点,支撑整个叙事链在该主题上的完整性。
Interoperability 让新旧共存。UI 自动化、性能测试、Objective-C 异常仍需 XCTest。参数化测试和 exit tests 是 XCTest 无法实现的增量价值。
Swift Testing 管理确定性代码行为,Evaluations 管理模型输出质量和 agentic 行为。AI 工程需要两类质量体系并存,而不是互相替代。
新测试用 Swift Testing,存量 XCTest 逐步替换。与 298 Evaluations 互补:确定性测试用 Swift Testing,非确定性评估用 Evaluations。(本 session 在全局地图中的位置:工程测试现代化——与 298/299(AI evaluations)互补,确定性+非确定性测试全覆盖。)