I've decided to not change Test::Aggregate to use nested TAP after all. Instead, my brain cleared and I am, instead, writing Test::Aggregate::Nested. It's much, much easier to write. In fact, here's the core of it:
use base 'Test::Aggregate::Base'; use Test::More; sub run { my $self = shift; foreach my $test ($self->_get_tests) { subtest $test => sub { do $test }; } }
That's just the bare bones, but it's astonishing how easy it was to get the basics to work and the TAP nests quite nicely. Once TAP::Harness is upgraded to better handle nested TAP (it parses just fine, but needs better verbosity controls), we're going to start seeing some killer features come out of this.
Oh, and did I mention that there's already discussion of work under way to get YAML diagnostics formally included into Test::Builder? Testing on steroids is getting closer and closer every day. I routinely find myself frustrated that we lack the flexibility of some other testing systems, but we're getting to the point of being able to surpass them rather than running an easy-to-use second.