On 30 Nov 2007, at 02:51, Michael G Schwern wrote:
I think with TAP there's two central desires.
1) Want to add / change functionality in Test::Harness or prove. For
example, one that adds color, another that saves the TAP results,
another that
emails a report at the end of the test.
Pretty much anything to do with presentation can be handled with a
custom formatter. That interface could be cleaner but it exists and
works.
Apart from that the main interface for injecting functionality
directly into TAP::Parser, TAP::Harness is to use the callback
interface they provide.
I've been exercising those interfaces with things like
TAP::Formatter::TextMate and Test::Steering on the principle that
someone needs to use them to find out what they lack, smooth off the
edges.
I'm quite comfortable with the callback based interface - I've been
hooking into one vector or another for most of my programming life and
I know the code well enough to understand the context in which the
callbacks are invoked - but it'd be good to have other people
hammering on the interface.
2) Want to come up with a radically different interface. For
example,
Test::TAP::HTML::Matrix. Or a GUI.
Ideally you'd be able to build it with the bits Test::Harness 3.00
puts at your disposal. Better documentation and a fatter examples
directory would be good.
How do you do this without balkanizing TAP::Parser into a bazillion
mutually
exclusive subclasses?
I don't believe producer (Test::Builder) and consumer (Test::Harness)
are necessarily entirely alike or symmetrical in this regard. T::B
pushes and T::H pulls - which makes callbacks or some higher level
event driven interface more appropriate for T::H than it would be for
T::B. Many extensions to T::H will be observing passing tests or
providing UI wrappers. T::B on the other hand is a multiplexer for a
variety of inputs.
So I don't think the interface we have is all that inappropriate - and
if it seems so it's probably for the want of documentation and
familiarity.
Something like App::ProvePlus is right out, it's just
shifting the dumping ground.
Red Herring. Forget I mentioned it.
--
Andy Armstrong, Hexten