Apple 的xcodebuild的扩展!
xctool是 Apple 的xcodebuild的扩展,可以更轻松地测试 iOS 和 Mac 产品。它对持续集成特别有帮助。
特征
xctool是替代品,xcodebuild test
它增加了一些额外的功能:
更快的并行测试运行。
xctool可以选择并行运行所有测试包,从而显着加快测试运行速度。在 Facebook,通过并行运行,我们看到了 2 倍和 3 倍的加速。
使用
-parallelize
带有run-tests或test的选项来启用。有关详细信息,请参阅并行化测试运行。测试结果的结构化输出。
xctool将所有测试结果捕获为结构化 JSON 对象。如果您正在构建一个持续集成系统,这意味着您不再需要正则表达式解析xcodebuild输出。
尝试使用Reporters之一自定义输出或使用该
-reporter json-stream
选项获取完整的事件流。人性化的 ANSI 颜色输出。
xcodebuild非常冗长,为每个源文件打印完整的编译命令和输出。默认情况下,xctool仅在出现问题时才详细说明,从而更容易确定问题所在。
用Objective-C编写。
xctool是用 Objective-C 编写的。Mac OS X 和 iOS 开发人员可以轻松提交新功能并修复他们可能遇到的任何错误,而无需学习新语言。我们非常欢迎拉取请求!
注意:不推荐使用 xctool 构建项目,并且不会更新以支持 Xcode 的未来版本。我们建议移动到 xcodebuild
(使用xcpretty)来满足简单的需求,或者使用xcbuild来满足更多的需求。xctool 将继续支持测试(见上文)。
要求
- Xcode 7 或更高版本
- 您需要安装 Xcode 的命令行工具。从 Xcode,通过Xcode → Preferences → Downloads安装。
安装
brew install xctool
xctool 的命令和选项主要是 xcodebuild 的超集。在大多数情况下,您只需将xcodebuild与xctool交换,事情就会按预期运行,但输出更具吸引力。
您始终可以通过以下方式获得帮助和完整的选项列表:
path/to/xctool.sh -help
在运行测试之前,您需要构建它们。您可以使用xcodebuild、 xcbuild或Buck来做到这一点。
例如:
xcodebuild \
-workspace YourWorkspace.xcworkspace \
-scheme YourScheme \
build-for-testing
如果您使用 Xcode 7 进行构建,您可以继续使用 xctool 使用 build-tests 构建测试,或者仅使用测试操作来运行测试。
例如:
path/to/xctool.sh \
-workspace YourWorkspace.xcworkspace \
-scheme YourScheme \
build-tests
并行化测试运行
xctool可以选择并行运行单元测试,从而更好地利用其他空闲的 CPU 内核。在 Facebook,通过并行化我们的测试运行,我们已经看到了 2 倍和 3 倍的收益。
要允许测试包同时运行,请使用以下-parallelize
选项:
path/to/xctool.sh \
-workspace YourWorkspace.xcworkspace \
-scheme YourScheme \
run-tests -parallelize
常见问题及demo下载:https://github.com/facebookarchive/xctool
源码下载:xctool-master.zip