FindGTest
Locate the Google C++ Testing Framework.
Imported targets
This module defines the following IMPORTED
targets:
-
GTest::GTest
- The Google Test
gtest
library, if found; adds Thread::Thread automatically -
GTest::Main
- The Google Test
gtest_main
library, if found
Result variables
This module will set the following variables in your project:
-
GTEST_FOUND
- Found the Google Testing framework
-
GTEST_INCLUDE_DIRS
- the directory containing the Google Test headers
The library variables below are set as normal variables. These contain debug/optimized keywords when a debugging library is found.
-
GTEST_LIBRARIES
- The Google Test
gtest
library; note it also requires linking with an appropriate thread library -
GTEST_MAIN_LIBRARIES
- The Google Test
gtest_main
library -
GTEST_BOTH_LIBRARIES
- Both
gtest
andgtest_main
Cache variables
The following cache variables may also be set:
-
GTEST_ROOT
- The root directory of the Google Test installation (may also be set as an environment variable)
-
GTEST_MSVC_SEARCH
- If compiling with MSVC, this variable can be set to
MD
orMT
(the default) to enable searching a GTest build tree
Example usage
enable_testing() find_package(GTest REQUIRED) add_executable(foo foo.cc) target_link_libraries(foo GTest::GTest GTest::Main) add_test(AllTestsInFoo foo)
Deeper integration with CTest
If you would like each Google test to show up in CTest as a test you may use the following macro:
GTEST_ADD_TESTS(executable extra_args files...)
-
executable
- the path to the test executable
-
extra_args
- a list of extra arguments to be passed to executable enclosed in quotes (or
""
for none) -
files...
- a list of source files to search for tests and test fixtures. Or
AUTO
to find them from executable target
However, note that this macro will slow down your tests by running an executable for each test and test fixture. You will also have to re-run CMake after adding or removing tests or test fixtures.
Example usage:
set(FooTestArgs --foo 1 --bar 2) add_executable(FooTest FooUnitTest.cc) GTEST_ADD_TESTS(FooTest "${FooTestArgs}" AUTO)
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.5/module/FindGTest.html