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