chromatic,

>  Any solution which requires a human being to read and think about the output
>  beyond "It's all okay!" or "Something fell!"* is not a long-term solution.

I don't think that's true of this implementation.  If the script
doesn't reach the all_done() call, there is a very obvious error.  If
it does, it internally produces a plan at the end--acceptable
according to TAP specs--and it's very obviously okay.

>  In particular, you lose the separation between producing TAP and interpreting
>  TAP, as well as the automation benefits of both.

I'm not sure I see what you're saying here.

>  The other function of a test plan is to make sure that you aren't running
>  *more* tests than you intended.  If you don't know why that's important, try
>  patching File::Find sometime.  I have.

Well, that is admittedly a very real disadvantage of my method, and
definitely one I hadn't considered.

>  Suppose you take advantage of the existence of Test::Builder and roll in
>  several other testing modules, per good programming practice of re-using
>  working and well-tested code.  Whose responsibility is it then to emit the
>  single canonical all_done() call?

The all_done() is handled by each individual test script.  It should
never be called in a library.  Test::Aggregate might have to perform
some magic to make sure it only gets called once, but my impression is
that Test::Aggregate is already fairly magical.

Thanx for taking the time to reply.


         -- Buddy

Reply via email to