FindXCTest¶
Added in version 3.3.
Finds the XCTest framework for writing unit tests in Xcode projects.
Note
Xcode 16 and later includes the Swift Testing framework for writing unit tests in the Swift programming language, which supersedes XCTest.
An XCTest bundle is a CFBundle (Core Foundation Bundle) with a special product type and bundle extension. See the Apple Developer Library for more information in the Testing with Xcode documentation.
Result Variables¶
This module defines the following variables:
XCTest_FOUND
Boolean indicating whether the XCTest framework and executable are found.
XCTest_INCLUDE_DIRS
Include directories containing the XCTest framework headers needed to use XCTest.
XCTest_LIBRARIES
Libraries needed to link against to use XCTest framework.
Cache Variables¶
The following cache variables may also be set:
XCTest_EXECUTABLE
The path to the
xctest
command-line tool used to execute XCTest bundles.
Commands¶
When XCTest is found, this module provides the following commands to help create and run XCTest bundles:
- xctest_add_bundle¶
Creates an XCTest bundle to test a given target:
xctest_add_bundle(<bundle> <testee> [<sources>...])
This command creates an XCTest bundle named
<bundle>
that will test the specified<testee>
target.The arguments are:
<bundle>
Name of the XCTest bundle to create. The
XCTEST
target property will be set on this bundle.<testee>
Name of the target to test. Supported types for the testee are Frameworks and App Bundles.
<sources>...
One or more source files to add to the bundle. If not provided, they must be added later using commands like
target_sources()
.
Note
The
CMAKE_OSX_SYSROOT
variable must be set before using this command.
- xctest_add_test¶
Adds an XCTest bundle to the project to be run during the CTest phase:
xctest_add_test(<name> <bundle>)
This command registers an XCTest bundle to be executed by
ctest(1)
. The test will be named<name>
and will run the specified<bundle>
.The arguments are:
<name>
Name of the test as it will appear in CTest.
<bundle>
Target name of the XCTest bundle.
Examples¶
Finding XCTest and adding tests:
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()