Using CMake, how do I get verbose output from CTest?
Solution 1:
You can set the environment variable CTEST_OUTPUT_ON_FAILURE
, which will show you any output from the test program whenever the test fails. One way to do this when using Makefiles and the command line would be as follows:
env CTEST_OUTPUT_ON_FAILURE=1 make check
This Stack Overflow question and answer shows how to set environment variables in Visual Studio.
Solution 2:
You could call ctest
directly, after cmaking and making your project.
ctest --verbose
Solution 3:
You can check the
Testing/Temporary
subfolder. It is automatically created after running make test. This folder contains two files:LastTest.log
andLastTestsFailed.log
.LastTest.log
contains desired output for run tests.LastTestFailed.log
contains names of failed tests. So you can check them manually after executingmake test
.-
The second way is to get ctest to show you the content of log files after running tests:
-
place in build dir (from which you run
make test
) file CTestCustom.ctest (you can do it with configure file command, for example) with following contentsCTEST_CUSTOM_POST_TEST("cat Testing/Temporary/LastTest.log")
-
Instead of cat you may use whatever Windows cmd command that does similar things.
- run
make test
again and get profit!
additional info about customizing ctest you can find here. Just step to "Customizing cmake" section. Good luck!
Solution 4:
There is a very simple solution (which for some reason is difficult to find via Google Search):
ctest --output-on-failure
If you use CMake with Visual Studio's open folder function you can add the
"ctestCommandArgs": "--output-on-failure"
setting to your build configuration.