I'm using CTest with CMake to run some tests. I use the enable_testing()
command which provides me with a default command for make test
. All of the tests in my subdirectory are accounted for (by doing an add_test
command) and make test
works great, except one problem.
There is a certain test, which I've named skip_test
, that I do NOT want being run when I do make test
. I would like to add a custom target so I can run make skip_test
and it will run that test.
I can do this by doing add_custom_target(skip_test ...)
and providing CTest with the -R
flag and telling it to look for files containing "skip_test" in their name. This also seems to work. My problem now is: how can I get the make test
command to ignore skip_test
?
If I try commenting out enable_testing
and adding my own add_custom_target(test ....)
, I get "No tests found!!!" now for either make test
or make skip_test
. I also tried making a Custom CTest file and adding set(CTEST_CUSTOM_TESTS_IGNORE skip_test)
. This worked so that now make test
ignored "skip_test", but now running make skip_test
responds with "no tests found!!!".
Any suggestions would be appreciated!
I actually used a different solution. Here is what I did. For the tests that I wanted to exclude, I used the following command when adding them:
"add_test( ..... CONFIGURATIONS ignore_flag)" where ignore_flag is whatever phrase you want. Then, in my CMakeLists.txt, when I define a custom target add_custom_target( ignore_tests ...) I give it ctest .... -C ignore_flag
Now, make test WILL skip these tests! make ignore_Tests will run the ignored tests + the un-ignored tests, which I'm okay with.