A few years ago I created a system where a test would disclose all of
the files on which it depended. This allowed for continuous monitoring
of those files and immediate re-execution of the test when it or its
dependencies changed. When combined with real-time generation of an
HTML dashboard, it resulted in real-time feedback every time I updated
a file in a module's lib hierarchy.

That ad hoc system would easier to create with today's
Test::TAP::Module and Test::TAP::HTMLMatrix modules, if there was a
flexible TAP enhancement. 

I propose using of subset of the Config::Std syntax to allow tests to
declare attributes that are captured in Test::TAP::Model as a hash.
That would allow the test to declare configuration information, such
as its dependencies, which would be available to downstream processors
of the test results.

I've put a more complete example on the new wiki
(http://perl-qa.yi.org/index.php/Test_Attributes), but this should
give you an idea of what I have in mind:

# TAP ATTR test version = $Revision: 1.3 $
# TAP ATTR depends on = blib/Test/Koala/Tea.pm
# TAP ATTR depends on = blib/Test/Koala/Eucalyptus/Tea.pm
# TAP ATTR depends on = blib/Test/Koala/Tree.pm

Or using a << block

# TAP ATTR << Kangaroo_on_a_pogo_stick
#
#       test version = $Revision: 1.3 $
#
#       depends on = blib/Test/Koala/Tea.pm
#       depends on = blib/Test/Koala/Eucalyptus/Tea.pm
#       depends on = blib/Test/Koala/Tree.pm
#
# Kangaroo_on_a_pogo_stick

That would create in the TAP model object, a hash of attributes such as
        
        {test version} = "$Revision: 1.3 $";
        {depends on} = [ "blib/Test/Koala/Tea.pm",
                         "blib/Test/Koala/Eucalyptus/Tea.pm",
                         "blib/Test/Koala/Tree.pm"];

Go wild on the wiki with your replies.

        Scott

Reply via email to