Yeah, it's not super helpful.
I'd like to enable Carp's features to use confess for traces, and switch all use of die to that. We could learn a lot about unplanned-for test failures where a test script dies rather than failing a test if we used carp effectively.
What's the problem with doing that?
Maybe we need to structure the build farm output better. Send an archive of tmp_check/logs/ or mime-multipart it or something, so it's all cleanly split up.
That's what they -should- do already, with 'ok', 'is', etc tests. Though sometimes diagnostic output is useful we should be using 'note' to dump it in the script's log, not in its main output. Whenever possible we should be using TAP facilities to only emit it when there is a failure - most usefully just by testing the test return code e.g.
if (!is(some_test, 1, 'test description')) {
diag "useful info: $relevant_variable";
}
TAP has a diag like function that dumps data structures too, Data::Dumper style.
Hm. Maybe the tap test readme needs a mini test writing style guide. Very mini.
BTW I've used diag in a few and those should be either changed to note or moved to post-fail. Will post a patch.
The trouble there is that we don't always know we're going to fail. Nor will we always fail in a clean, anticipated way. A test script might die because some setup it does fails with an unexpected ERROR for example.
That's why I think some diagnostic output is good. But it should definitely be in the script logs not the main TAP output. And it should be moderate.