Set CTest Arguments from CMake (for `make test`)
Just a quick follow-up to my previous post. It was somehow trickier than I thought to set arguments for CTest
from CMake
. In the end, the solution is quite simple, but existing resources weren’t as helpful as they should.
For reference: If you type $ ninja test
or $ make test
in the generated build directory from CMake
, CTest
is invoked under the hood. By setting CMAKE_CTEST_ARGUMENTS
at the right place in your CMakeLists.txt
file, you can set additional arguments for CMake
. Otherwise, you have to invoke $ ctest --my--additional args
manually.
TL;DR: The solution is the following:
# Must be set before including CTest so that these arguments are applied when # running `$ ninja test` or `$ make test`. set(CMAKE_CTEST_ARGUMENTS "--output-on-failure" "--output-junit" "junit.xml") # This entry must be placed in the top-level CMakeLists.txt file to ensure # proper test discovery include(CTest)
TL;DR 2: This typically applies for all CMake modules that are added via include()
: first specify variables, then include the module.
You can find an example in my example project on GitHub.
0 Comments