Continuous Integration

Sean Kelly sean at invisibleduck.org
Thu Mar 27 18:29:57 PDT 2008


== Quote from Jason House (jason.james.house at gmail.com)'s article
> Sean Kelly wrote:
> > == Quote from Jason House (jason.james.house at gmail.com)'s article
> >> Lars Ivar Igesund Wrote:
> >> > Jason House Wrote:
> >> >
> >> > > Sean Kelly wrote:
> >> > >
> >> > > > == Quote from Jason House (jason.james.house at gmail.com)'s article
> >> > > >> I'd like to stay with the D style of unit tests.  Maybe I should
> >> > > >> check what
> >> > > >> enhancement requests are in there.  It'd be nice to be able to
> >> > > >> hook in a unit test handler...
> >> > > >
> >> > > > Tango has one.  Look at "moduleUnitTester" here:
> >> > > >
> >> > > >
> http://www.dsource.org/projects/tango/docs/current/tango.core.Runtime.html
> >> > > >
> >> > > >
> >> > > > Sean
> >> > >
> >> > > See http://d.puremagic.com/issues/show_bug.cgi?id=1952 for the
> >> > > enhancement
> >> > > request.  Per unit test customization (such as a unit test name) is
> >> > > very
> >> > > useful to have.  I also don't see a way to tell the program to run
> >> > > all unit tests (and just report the individual passes/failures)
> >> >
> >> > Here is a simple program that uses the above hook  - note that you need
> >> > to link one of the stacktrace libs (jive on linux) to actually
> > get stacktraces printed on exceptions, not just assert line numbers. Also,
> > I think it will be unable to continue after a segfault.:
> >> Hmmm...  There's some black magic in your sample.  What's "ModuleInfo"?
> >> Where is it documented?
> >
> > ModuleInfo is declared in the global object.di in Tango, and it isn't
> > documented anywhere.  Sorry about that.  I need to look into documenting
> > what's in object.di.
> >
> >> The code looks like it does not run unit tests one at a time, but I'll
> >> wait for real analysis of the code until I know what's going on.
> >
> > Unfortunately, the compiler lumps all the unit tests in a particular
> > module together.  I would prefer if they were split out into a per- module
> > list however, and this would have to happen for your enhancement request
> > to go through.
> >
> >
> > Sean
> Please, please add the extra detail to the request!  How should the compiler
> do it?

I'd like ModuleInfo to get something vaguely like this:

alias void function() UnitTest;
struct NamedPair { char[] name; UnitTest test; }
NamedPair[] unitTests;

Then executing the unit tests for a module could be done on a per-test basis,
with the names you suggested visible as well.  Of course, this means even more
meta-data per module, but it would make unittest more flexible so...


Sean



More information about the Digitalmars-d mailing list