[CMake] Unit tests, but not CTest
Magnus Therning
magnus at therning.org
Fri May 7 11:41:23 EDT 2010
On Tue, Apr 27, 2010 at 15:50, Tyler Roscoe <tyler at cryptio.net> wrote:
> On Tue, Apr 27, 2010 at 02:47:18PM +0100, Magnus Therning wrote:
>> Except of course that it will take away one of the things I *really*
>> want, which is that all unit tests are run every time I compile.
>
> We run our unit tests with a python wrapper script that does some
> environment configuration before running the test. We then add this
> script as a post_build custom command so that the unit test runs after
> it compiles.
>
> add_custom_command (TARGET ${PROJECT_NAME}
> POST_BUILD
> # Call the runner script directly. By doing it this way, all the
> # unit tests in the executable run at once. If we call CTest
> # here (like we do for the _runtest target), the script (and
> # thus the python interpreter) is invoked once for each test in
> # the executable, which is slower than calling the script once.
> COMMAND ${PYTHON_EXECUTABLE} ${${PROJECT_NAME}_TESTRUNNER} ${CMAKE_CFG_INTDIR} --gtest_print_time
> )
That does what I want, thanks for that tip.
One thing though, it seems the command is run *always* irrespective of
whether the target is built or not. That doesn't seem to square up
with the text in the man page:
The command becomes part of the target and will only execute when
the target itself is built. If the target is already built, the
command will not execute.
/M
--
Magnus Therning (OpenPGP: 0xAB4DFBA4)
magnus@therning.org Jabber: magnus@therning.org
http://therning.org/magnus identi.ca|twitter: magthe
More information about the CMake
mailing list