[CMake] Need advice for unit test structure

Philip Lowman philip at yhbt.com
Thu May 21 01:50:19 EDT 2009


On Thu, May 21, 2009 at 12:00 AM, Robert Dailey <rcdailey at gmail.com> wrote:

> On Wed, May 20, 2009 at 9:38 PM, Philip Lowman <philip at yhbt.com> wrote:
>
>> On Wed, May 20, 2009 at 9:40 PM, Robert Dailey <rcdailey at gmail.com>wrote:
>> > I'm still looking to figure out how a single project can be configured
>> to generate multiple executables. Can anyone clarify?
>>
>> A Visual Studio project file is limited to one target (executable,
>> library, etc.) as far as I know.  If this is what you're asking.
>>
>> At work what we do is clump our unit tests for each class (in a library)
>> into a single unit test executable.  In this way we minimize the number of
>> executables linked and the number of tests that run and show up in Visual
>> Studio.
>>
>> We use gtest but the same principals apply with cxxtest, cppunit, etc.
>
>
> This idea would work perfectly if I did not have compile time unit tests.
> For example, some unit tests pass if they fail to compile, or pass if they
> compile successfully. It's the former case that makes this idea impossible
> to use.
>

Ah yes, I'm sorry I forgot that part of the thread.

So these are the two solutions people have come up with for this:
1. Selectively enable the failure tests only during nightly builds
2. Try to keep the failure tests isolated from the rest of your projects by
giving them names that put them on the bottom of the list of projects
(zz_foo_fail)

I don't have an example of this, but it might be possible to have your test
run a script which configures and builds a small CMake test project which
compiles against your current code.  This test project would of course fail
to compile by design.  Then you could monitor for this failure and expect
it?


-- 
Philip Lowman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20090521/71694f41/attachment.htm>


More information about the CMake mailing list