FindXCTest¶
3.3 版本中新增。
查找用于在 Xcode 项目中编写单元测试的 XCTest 框架
find_package(XCTest [...])
注意
Xcode 16 及更高版本包含 Swift Testing 框架,用于用 Swift 编程语言编写单元测试,该框架取代了 XCTest。
XCTest bundle 是一个 CFBundle(Core Foundation Bundle),具有特殊的产品类型和 bundle 扩展。有关更多信息,请参阅 Apple Developer Library 中使用 Xcode 进行测试文档。
结果变量¶
此模块定义了以下变量
XCTest_FOUND一个布尔值,指示是否找到 XCTest 框架和可执行文件。
XCTest_INCLUDE_DIRS包含 XCTest 框架头文件的包含目录,这些头文件是使用 XCTest 所必需的。
XCTest_LIBRARIES链接 XCTest 框架所需的库。
缓存变量¶
以下缓存变量也可以设置
XCTest_EXECUTABLE用于执行 XCTest bundle 的
xctest命令行工具的路径。
命令¶
当找到 XCTest 时,此模块提供以下命令来帮助创建和运行 XCTest bundle
- xctest_add_bundle¶
创建一个 XCTest bundle 来测试给定的目标
xctest_add_bundle(<bundle> <testee> [<sources>...])
此命令创建一个名为
<bundle>的 XCTest bundle,它将测试指定的<testee>目标。参数为
<bundle>要创建的 XCTest bundle 的名称。将在此 bundle 上设置
XCTEST目标属性。<testee>要测试的目标的名称。被测目标的受支持类型是 Frameworks 和 App Bundles。
<sources>...要添加到 bundle 的一个或多个源文件。如果未提供,则必须稍后使用
target_sources()等命令添加。
注意
在使用此命令之前,必须设置
CMAKE_OSX_SYSROOT变量。
示例¶
查找 XCTest 并添加测试
find_package(XCTest)
add_library(foo SHARED foo.c)
if(XCTest_FOUND)
xctest_add_bundle(TestAppBundle foo source.swift)
xctest_add_test(app.TestAppBundle TestAppBundle)
endif()