[Scons-users] HOWTO model a test suite using SCons

William Blevins wblevins001 at gmail.com
Sun Jan 3 19:38:29 EST 2016


Bill's solution is the easiest.

Another option is to make your Test builder behave like the Program or
Library builders (IE. goes from *.c to *.o to <executable>); thus, your
Test builder would go from <test action> to *.result to <report>. It is
more complicated, but perhaps a better long term solution. You would have
to look at the source code probably to get a good example. I cannot give
you a code snippet off the top of my head.

So your new Test builder might look like Test( ['A', 'B'], final.report )
if that makes sense. If your Test calls are scattered across SConscripts,
then use Bill's method.

V/R,
William

On Mon, Jan 4, 2016 at 12:24 AM, Bill Deegan <bill at baddogconsulting.com>
wrote:

> Use a PseudoBuilder (see users guide) for env.AddTest() which could call
> env.Test()  something like this
>
> outfiles=env.Test()
> env['ALL_TESTS'].extend(outfiles)
>
>
> Then env.Report could use ALL_TESTS..
> -Bill
>
> On Sun, Jan 3, 2016 at 4:13 PM, Stefan Seefeld <stefan at seefeld.name>
> wrote:
>
>> On 03.01.2016 10:52, William Blevins wrote:
>> >
>> >
>> > On Sun, Jan 3, 2016 at 7:00 AM, Stefan Seefeld <stefan at seefeld.name
>> > <mailto:stefan at seefeld.name>> wrote:
>> >
>> >     Hi,
>> >
>> >     thanks all for the helpful replies.
>> >
>> >     On 01.01.2016 15:12, William Blevins wrote:
>> >     > Stefan,
>> >     >
>> >     > I have always used something simple
>> >     > like https://bitbucket.org/scons/scons/wiki/UnitTests
>> >     >
>> >     > I just compile my test suite and create a target for running the
>> >     > suite. Obviously passing parameters to the suite via commandline
>> is
>> >     > hard, but depending on the scale of the tests, that is usually
>> >     > irrelevant. You can of course make a whole pipeline using SCons
>> >     > targets which may include piping the test outputs to a file and
>> >     using
>> >     > that file as a target to a document generator, etc.
>> >
>> >     Yes, I think this is precisely what I'm looking for: while I
>> >     already can
>> >     run tests "normally" (even generate some simple output like "PASS"
>> and
>> >     "FAIL"), the output is typically very noisy due to various reasons
>> >     (compiler warnings, say), so I'd like to add a "reporter" that
>> >     post-processes the test results (such as to print a nice summary
>> >     to stdout).
>> >     While I'm able to set things up manually, I would like to find a
>> >     way to
>> >     do this automatically:
>> >
>> >     My SConscript file contains a bunch of "Test(...)" declarations
>> (each
>> >     defining a test that produces a specific <name>.result test-result
>> >     file). Is there a way to pre-define a "Report" generator such that
>> all
>> >     the above *.result files are automatically added as sources for
>> >     it, such
>> >     that when I run `scons test`, it runs all tests, followed by the
>> >     report
>> >     generator ?
>> >
>> >     Is this a sensible approach at all ?
>> >
>> >
>> > You can make a Command or Builder for the report generator
>> > action: https://bitbucket.org/scons/scons/wiki/ToolsForFools
>> >
>> > Then just pass the output of Test calls (the targets) as sources to
>> > the ReportGenerator builder.
>>
>> Right, I understand. My question was whether there is a way to do that
>> implicitly. My current SConscript code looks like this:
>>
>> env.Test('foo')
>> env.Test('bar')
>> ...
>>
>> To add a report generator I'd need to add something akin to
>>
>> env.Report(['foo', 'bar',...])
>>
>> and I'm wondering whether I can synthesize that last line based on the
>> above env.Test() invocations, so I don't have to modify two locations
>> whenever I add new tests.
>>
>> Thanks,
>>         Stefan
>>
>> --
>>
>>       ...ich hab' noch einen Koffer in Berlin...
>>
>> _______________________________________________
>> Scons-users mailing list
>> Scons-users at scons.org
>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>
>
>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> https://pairlist4.pair.net/mailman/listinfo/scons-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20160104/2ea4c5a5/attachment-0001.html>


More information about the Scons-users mailing list