XcodeSelectiveTesting 使用教程
项目介绍
XcodeSelectiveTesting 是一个 Swift 包,旨在帮助开发者仅运行与代码变更相关的测试。这样可以显著减少测试时间,特别是在大型项目中,当只有部分模块发生变化时。该项目通过识别变更的模块并仅运行这些模块的测试,从而提高开发和持续集成(CI)的效率。
项目快速启动
安装
-
使用 Swift Package Manager (SPM) 安装
在你的
Package.swift
文件中添加以下依赖:dependencies: [ .package(url: "https://github.com/mikeger/XcodeSelectiveTesting.git", from: "0.9.5") ]
-
使用 Mint 安装
mint install mikeger/XcodeSelectiveTesting@0.9.5
使用
-
通过 SPM 运行
swift run xcode-selective-test
-
通过 Mint 运行
mint run mikeger/XcodeSelectiveTesting@0.9.5
应用案例和最佳实践
案例一:Swift Package Manager 项目
假设你的项目有多个模块,如 Login
、LoginUI
和 MainApp
。当 Login
模块发生变化时,通常需要运行所有模块的测试。使用 XcodeSelectiveTesting,你可以仅运行 Login
和 LoginUI
的测试,从而节省时间。
案例二:Xcode 项目
在 Xcode 项目中,你可以通过以下步骤集成 XcodeSelectiveTesting:
-
添加包依赖
在 Xcode 中,选择你的项目,进入
Package Dependencies
标签,点击+
,然后输入https://github.com/mikeger/XcodeSelectiveTesting
。 -
运行测试
使用以下命令运行仅与变更相关的测试:
xcodebuild test -workspace YourWorkspace.xcworkspace -scheme YourScheme $(mint run --silent XcodeSelectiveTesting@provide-if-target-is-test-target --json | jq -r "[ [] | select( testTarget == true)] | map(\"-only-testing:\" + name) | join(\" \")")
典型生态项目
XcodeSelectiveTesting 可以与以下项目或工具结合使用,以进一步提升开发效率:
- Swift Package Manager (SPM):用于管理 Swift 包依赖。
- Mint:用于管理 Swift 命令行工具的版本。
- Xcode:用于开发和运行测试。
- jq:用于处理 JSON 数据,帮助筛选需要运行的测试。
通过结合这些工具,XcodeSelectiveTesting 可以更好地适应不同的开发环境和需求,从而提高整体的开发效率。