On 02/09/07, Michael G Schwern <[EMAIL PROTECTED]> wrote:
> Fergal Daly wrote:
> It goes out via the normal TAP stream with all the "ok" and "not ok". That
> is, STDOUT.
>
> Or are you asking about the guts of Test::Builder? I haven't planned it out
> much but I'm thinking something like...
>
> # Get the Test::Builder::Diagnostics object.
> my $diagnostics = $tb->diagnostics_object;
>
> # Hand it the hash and return the YAML
> my $tap_diagnostics = $diagnostics->format_diagnostics({
> found => $got,
> wanted => $expected
> });
>
> # Print it to the TAP stream.
> $tb->_print($tap_diagnostics);
>
> So you should be able to drop in your own Test::Builder::Diagnostics object
> which captures the hash.
I'm asking for somewhere in between. For Test::Tester what matters is
the public Test::Builder interface. Will you be adding an equivalent
to ->diag through which it is all funnelled? Test::Tester provides an
object which conforms to the T::B interface so I'd just need to
provide a new method if this was the plan.
I'm assuming here that test modules will provide these diagnostics in
a similar way to the old style, something like:
my $TB = Test::Builder->new()
sub my_test {
blah();
$TB->ok();
if ($TB->can("verbose_diag") {
$TB->verbose_diag({...});
} else {
$TB->diag(...);
}
}
and just leave it up to T::B to check whether the harness supports
them or whether to format the info as an old-style diagnostic.
F
>
> --
> Stabbing you in the face so you don't have to.
>