It's only a chicken and egg problem if you constrain yourself artificially.
When you define a new unit test source file, there are two things you need to do: (1) add it to its executable (2) write an add_test line that invokes that specific unit test You could possibly encapsulate those actions into an add_unit_test macro so that it only seems like you have one thing to do, but certainly, it's possible. You must be doing #1 already, so you just have to make sure #2 always happens whenever #1 happens. Both eggs. D On Mon, Jan 26, 2015 at 4:05 PM, Robert Dailey <rcdailey.li...@gmail.com> wrote: > I believe so, but then you run into the chicken and egg problem: > > I need to fully build all unit tests in order to know all the test > cases, but I need to define the tests at the generation phase (before > build). > > I'm just not sure how to handle this. The best i can think of is to > generate 1 test executable per CPP file that we write in our unit > tests (generally 1 CPP file per class that is unit tested). Any ideas? > > On Mon, Jan 26, 2015 at 10:05 AM, David Cole <dlrd...@aol.com> wrote: >> Can you run a command that executes one test case at a time, or do you >> have to run all 50 when you execute the tests for a library? >> >> ctest just runs whatever you give it with add_test -- if you want to >> filter a collection of unit tests to run only a single unit test, then >> the unit test framework you're using would have to support that. Does >> Catch allow you to run the tests individually? >> >> >> >> On Mon, Jan 26, 2015 at 12:30 AM, Robert Dailey >> <rcdailey.li...@gmail.com> wrote: >>> Hi, >>> >>> I'm using Catch as my unit test framework: >>> https://github.com/philsquared/Catch >>> >>> Is it possible for CTest to report each TEST_CASE block as an >>> individual test? My understanding is that CTest will only treat each >>> executable as a test. However, my test structure is as follows: >>> >>> 1 library >>> 1 test project >>> >>> Each test project has 1 test CPP file per each class in the library. >>> This way I implement tests for classes in a corresponding CPP file. >>> >>> Each CPP file contains multiple test cases (defined by TEST_CASE macro). >>> >>> The resulting output of `ctest -T Test` shows only 1 test, even though >>> that may be around 50 test cases. I'd like CMake to show the pass/fail >>> status of each one. Is this possible? >>> -- >>> >>> Powered by www.kitware.com >>> >>> Please keep messages on-topic and check the CMake FAQ at: >>> http://www.cmake.org/Wiki/CMake_FAQ >>> >>> Kitware offers various services to support the CMake community. For more >>> information on each offering, please visit: >>> >>> CMake Support: http://cmake.org/cmake/help/support.html >>> CMake Consulting: http://cmake.org/cmake/help/consulting.html >>> CMake Training Courses: http://cmake.org/cmake/help/training.html >>> >>> Visit other Kitware open-source projects at >>> http://www.kitware.com/opensource/opensource.html >>> >>> Follow this link to subscribe/unsubscribe: >>> http://public.kitware.com/mailman/listinfo/cmake -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake