[CMake] Need advice for unit test structure
Daniel Blezek
Blezek.Daniel at mayo.edu
Thu Apr 2 17:03:14 EDT 2009
Hi Robert,
I don¹t have any suggestions about the compile time unit tests, but we¹ve
been using the Google testing framework for the last 6 months and have been
very happy with it. I wrote up some details related to ITK here:
http://www.itk.org/Wiki/Proposals:Increasing_ITK_Code_Coverage#Google_Test
You can have multiple tests embedded in one executable, which is what the
gtest framework does.
Best regards,
-dan
On 4/2/09 3:00 PM, "Robert Dailey" <rcdailey at gmail.com> wrote:
> Hi,
>
> Currently we have a directory called "test" under each project we have. Each
> source file (CPP) results in 1 unit test project being created. So if we have
> a project named "foobar", it would be structured like this on the filesystem:
>
> foobar/test/test1.cpp
> foobar/test/test2.cpp
> foobar/test/test3.cpp
>
> And the generated visual studio projects (when created via CMake) would be:
>
> foobar
> foobar_test1
> foobar_test2
> foobar_test3
>
> Obviously this creates a lot of clutter in the solution explorer window in
> Visual Studio. Is there a more recommended practice for structuring unit tests
> in CMake? Personal advice is also welcome. One approach I'd like to take is
> where we only have two projects:
>
> foobar
> foobar_test
>
> And inside foobar_test, all of the sources under the /test/ directory would be
> included, so a single project compiles all unit tests.
>
> foobar_test
> test1.cpp
> test2.cpp
> test3.cpp
>
> However, the reason why I'm currently not doing this is because of
> compile-time unit testing. Basically, some unit tests are designed to be
> successful if they fail to compile. For example, perhaps certain template
> parameters do not meet the requirements of a specific C++ concept, and thus
> rightfully fail. This unit test would be considered successful because we want
> to make sure that ONLY types matching this specific concept are accepted by
> the compiler.
>
> If we include these source files in the same project, then it interrupts the
> whole compilation process. They have to be separate in order to work properly.
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake
--
Daniel Blezek, PhD
Medical Imaging Informatics Innovation Center
P 127 or (77) 8 8886
T 507 538 8886
E blezek.daniel at mayo.edu
Mayo Clinic
200 First St. S.W.
Harwick SL-44
Rochester, MN 55905
mayoclinic.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20090402/597362bd/attachment.htm>
More information about the CMake
mailing list