Hello,

This looks a little like google test. For a project I just created a CMake 
macro which grepped through the test files for the test cases and adds them one 
by one. Certainly features could be added to better support text fixtures. 

Hope this gives you some inspiration:
https://github.com/SimpleITK/SimpleITK/blob/7aeb952d25c0142e66087edce89e708db2d59a1a/Testing/Unit/CMakeLists.txt#L270-L310

Brad



On Jan 27, 2015, at 8:18 AM, David Cole via CMake <cmake@cmake.org> wrote:

> 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

-- 

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

Reply via email to