Does anyone have an experience in integrating Unit test frameworks with CTest? 
AFAIK many of such frameworks provide means to register tests and test cases, 
and it would 
be nice to make ctest aware of such things, because it's not good to make 
changes in multiple places when I add new test.

I know, KDE has some things, but their approach doesn't allow to run single 
test. May be I'm wrong and it's complete ctest misusage...

I Just played with googletest (http://code.google.com/p/googletest) and came to 
such macro:

macro(ADD_UNIT_TESTS executable source)
        file(READ "${source}" contents)
        string(REGEX MATCHALL "TEST_?F?\\(([A-Za-z_ ,]+)\\)" found_tests 
${contents})
        foreach(hit ${found_tests})
                string(REGEX REPLACE ".*\\(([A-Za-z_]+)[, ]*([A-Za-z_]+)\\).*" 
"\\1.\\2" test_name ${hit})
                add_test(${test_name} ${executable} --gtest_filter=${test_name})
        endforeach(hit)
endmacro(ADD_UNIT_TESTS)

This way you automatically propagate all tests and test-cases from sources to 
CTest.
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to