NAME TAP::Formatter::HTML - TAP Test Harness output delegate for html output SYNOPSIS # cmdline usage: % prove -m -Q --formatter=TAP::Formatter::HTML >output.html # perl usage: use TAP::Harness; my @tests = glob( 't/*.t' ); my $harness = TAP::Harness->new({ formatter_class => 'TAP::Formatter::HTML', merge => 1 }); $harness->runtests( @tests ); # prints HTML to STDOUT by default # or if you really don't want STDERR merged in: my $harness = TAP::Harness->new({ formatter_class => 'TAP::Formatter::HTML' }); # to use a custom formatter: my $fmt = TAP::Formatter::HTML->new; $fmt->css_uris([])->inline_css( $my_css ) ->js_uris(['http://mysite.com/jquery.js', 'http://mysite.com/custom.js']) ->inline_js( '$(div.summary).hide()' ); my $harness = TAP::Harness->new({ formatter => $fmt, merge => 1 }); # you can use your own customized templates too: $fmt->template('custom.tt2') ->template_processor( Template->new ) ->force_inline_css(0); DESCRIPTION This module provides HTML output formatting for TAP::Harness (a replacement for Test::Harness. It is largely based on ideas from TAP::Test::HTMLMatrix (which was built on Test::Harness and thus had a from a few limitations - hence this module). For sample output, see: This module is targeted at all users of automated test suites. It's meant to make reading test results easier, giving you a visual summary of your test suite and letting you drill down into individual failures (which will hopefully make testing more likely to happen at your organization ;-). The design goals are: * *easy to use* Once you've got your test report, it should be obvious how to use it. * *helpful* It should be helpful by pointing out *where* & *why* your test suite is breaking. If you've written your tests well, it should give you enough info to start tracking down the issue. * *easy to install* Eg: should be a clean install from CPAN, and you shouldn't need to modify your existing test suite to get up & running, though *you will need to stop using Test::Harness unfortunately*. * *work out of the box* You shouldn't need to do any custom-coding to get it working - the default configuration & templates should be enough to get started with. Once installed it should be a matter of running: % prove -m -Q --formatter=TAP::Formatter::HTML >output.html From your project's home dir, and opening the resulting file. * *easy to configure* You should be able to configure & customize it to suit your needs. As such, css, javascript and templates are all configurable. METHODS CONSTRUCTOR new( \%args ) ACCESSORS All chaining accessors: verbosity( [ $v ] ) Verbosity level, as defined in "new" in TAP::Harness: 1 verbose Print individual test results (and more) to STDOUT. 0 normal -1 quiet Suppress some test output (eg: test failures). -2 really quiet Suppress everything but the HTML report. -3 silent Suppress all output, including the HTML report. Note that the report is also available via "html". stdout( [ \*FH ] ) A filehandle for catching standard output. Defaults to "STDOUT". escape_output( [ $boolean ] ) If set, all output to "stdout" is escaped. This is probably only useful if you're testing the formatter. Defaults to 0. html( [ \$html ] ) This is a reference to the scalar containing the html generated on the last test run. Useful if you have "silent" on. tests( [ \@test_files ] ) A list of test files we're running, set by TAP::Parser. session_class( [] ) Class to use for TAP::Parser test sessions. You probably won't need to use this unless you're hacking or sub-classing the formatter. Defaults to TAP::Formatter::HTML::Session. sessions( [ \@sessions ] ) Test sessions added by TAP::Parser. You probably won't need to use this unless you're hacking or sub-classing the formatter. template_processor( [ $processor ] ) The template processor to use. Defaults to a TT2 Template processor with the following config: COMPILE_DIR => catdir( tempdir(), 'TAP-Formatter-HTML' ), COMPILE_EXT => '.ttc', INCLUDE_PATH => join(':', @INC), template( [ $file_name ] ) The template file to load. Defaults to "TAP/Formatter/HTML/default_report.tt2". css_uris( [ \@uris ] ) A list of URIs (or strings) to include as external stylesheets in