Rechercher une page de manuel
TAP::Formatter::HTML.3pm
Langue: en
Version: 2010-05-06 (fedora - 01/12/10)
Section: 3 (Bibliothèques de fonctions)
Sommaire
NAME
TAP::Formatter::HTML - TAP Test Harness output delegate for html outputSYNOPSIS
# cmdline usage: % prove -m -Q --formatter=TAP::Formatter::HTML >output.html # currently in alpha: % prove -PHTML=output.html -m -Q --formatter=TAP::Formatter::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 }); # to output HTML to a file[handle]: $fmt->output_fh( $fh ); $fmt->output_file( '/tmp/foo.html' ); # 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 few limitations - hence this module). For sample output, see:http://www.spurkis.org/TAP-Formatter-HTML/test-output.html <http://www.spurkis.org/TAP-Formatter-HTML/test-output.html>
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 to STDOUT but the HTML report. -3 silent Suppress all output to STDOUT, including the HTML report.
Note that the report is also available via ``html''. You can also provide a custom ``output_fh'' (aka ``output_file'') that will be used instead of ``stdout'', even if silent is on.
stdout( [ \*FH ] )
An IO::Handle filehandle for catching standard output. Defaults to "STDOUT".
output_fh( [ \*FH ] )
An IO::Handle filehandle for printing the HTML report to. Defaults to the same object as ``stdout''.
Note: If ``silent'' is on, printing to "output_fh" will still occur. (that is, assuming you've opened a different file, not "STDOUT").
output_file( $file_name )
Not strictly an accessor - this is a shortcut for setting ``output_fh'', equivalent to:
$fmt->output_fh( IO::File->new( $file_name, 'w' ) );
You can set this with the "TAP_FORMATTER_HTML_OUTFILE=/path/to/file" environment variable
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, and have not provided a custom ``output_fh'' to write the report to.
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".
You can set this with the "TAP_FORMATTER_HTML_TEMPLATE=/path/to.tt" environment variable.
css_uris( [ \@uris ] )
A list of URIs (or strings) to include as external stylesheets in <style> tags in the head of the document. Defaults to:
['file:TAP/Formatter/HTML/default_report.css'];
You can set this with the "TAP_FORMATTER_HTML_CSS_URIS=/path/to.css:/another/path.css" environment variable.
js_uris( [ \@uris ] )
A list of URIs (or strings) to include as external stylesheets in <style> tags in the head of the document. Defaults to:
['file:TAP/Formatter/HTML/jquery-1.2.6.pack.js'];
You can set this with the "TAP_FORMATTER_HTML_JS_URIS=/path/to.js:/another/path.js" environment variable.
inline_css( [ $css ] )
If set, the formatter will include the CSS code in a <style> tag in the head of the document.
inline_js( [ $javascript ] )
If set, the formatter will include the JavaScript code in a <script> tag in the head of the document.
minify( [ $boolean ] )
If set, the formatter will attempt to reduce the size of the generated report, they can get pretty big if you're not careful! Defaults to 1 (true).
Note: This currently just means... remove tabs at start of a line. It may be extended in the future.
abs_file_paths( [ $ boolean ] )
If set, the formatter will attempt to convert any relative file JS & css URI's listed in ``css_uris'' & ``js_uris'' to absolute paths. This is handy if you'll be sending moving the HTML output around on your harddisk, (but not so handy if you move it to another machine - see ``force_inline_css''). Defaults to 1.
force_inline_css( [ $boolean ] )
If set, the formatter will attempt to slurp in any file css URI's listed in ``css_uris'', and append them to ``inline_css''. This is handy if you'll be sending the output around - that way you don't have to send a CSS file too. Defaults to 1.
You can set this with the "TAP_FORMATTER_HTML_FORCE_INLINE_CSS=0|1" environment variable.
API METHODS
$html = $fmt->summary( $aggregator )"summary" produces a summary report after all tests are run. $aggregator should be a TAP::Parser::Aggregator.
This calls:
$fmt->template_processor->process( $params )
Where $params is a data structure containing:
report => %test_report js_uris => @js_uris css_uris => @js_uris inline_js => $inline_js inline_css => $inline_css formatter => %formatter_info
The "report" is the most complicated data structure, and will sooner or later be documented in ``CUSTOMIZING''.
CUSTOMIZING
This section is not yet written. Please look through the code if you want to customize the templates, or sub-class.You can use environment variables to customize the behaviour of TFH:
TAP_FORMATTER_HTML_OUTFILE=/path/to/file TAP_FORMATTER_HTML_FORCE_INLINE_CSS=0|1 TAP_FORMATTER_HTML_CSS_URIS=/path/to.css:/another/path.css TAP_FORMATTER_HTML_JS_URIS=/path/to.js:/another/path.js TAP_FORMATTER_HTML_TEMPLATE=/path/to.tt
This should save you from having to write custom code for simple cases.
BUGS
Please use http://rt.cpan.org to report any issues.AUTHOR
Steve Purkis <spurkis@cpan.org>COPYRIGHT
Copyright (c) 2008 Steve Purkis <spurkis@cpan.org>, S Purkis Consulting Ltd. All rights reserved.This module is released under the same terms as Perl itself.
SEE ALSO
Examples in the "examples" directory and here:http://www.spurkis.org/TAP-Formatter-HTML/test-output.html <http://www.spurkis.org/TAP-Formatter-HTML/test-output.html>, http://www.spurkis.org/TAP-Formatter-HTML/DBD-SQLite-example.html <http://www.spurkis.org/TAP-Formatter-HTML/DBD-SQLite-example.html>, http://www.spurkis.org/TAP-Formatter-HTML/Template-example.html <http://www.spurkis.org/TAP-Formatter-HTML/Template-example.html>
prove - TAP::Harness's new cmdline utility. It's great, use it!
Test::TAP::HTMLMatrix - the inspiration for this module. Many good ideas were borrowed from it.
TAP::Formatter::Console - the default TAP formatter used by TAP::Harness
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre