TAP::Formatter::JUnit - Harness output delegate for JUnit output
On the command line, with prove:
$ prove --formatter TAP::Formatter::JUnit ...
Or, in your own scripts:
use TAP::Harness; # What TAP output did we save from a previous run, with # PERL_TEST_HARNESS_DUMP_TAP=tap/ my @tests = glob("tap/*.t"); # Convert the TAP to JUnit my $harness = TAP::Harness->new( { formatter_class => 'TAP::Formatter::JUnit', merge => 1, } ); $harness->runtests(@tests);
This code is currently in alpha state and is subject to change.
TAP::Formatter::JUnit provides JUnit output formatting for TAP::Harness.
TAP::Formatter::JUnit
TAP::Harness
By default (e.g. when run with prove), the entire test suite is gathered together into a single JUnit XML document, which is then displayed on STDOUT. You can, however, have individual JUnit XML files dumped for each individual test, by setting PERL_TEST_HARNESS_DUMP_TAP to a directory that you would like the JUnit XML dumped to. Note, that this will also cause TAP::Harness to dump the original TAP output into that directory as well (but IMHO that's ok as you've now got the data in two parseable formats).
STDOUT
PERL_TEST_HARNESS_DUMP_TAP
Timing information is included in the JUnit XML, if you specified --timer when you ran prove.
--timer
In standard use, a "passing TODO" is treated as failure conditions (and is reported as such in the generated JUnit). If you wish to treat these as a "pass" and not a "fail" condition, setting ALLOW_PASSING_TODOS in your environment will turn these into pass conditions.
ALLOW_PASSING_TODOS
The JUnit output generated is partial to being grokked by Hudson (http://hudson.dev.java.net/). That's the build tool I'm using at the moment and needed to be able to generate JUnit output for.
List-ref of test suites that have been executed.
An XML::Generator instance, to be used to generate XML output.
XML::Generator
Over-ridden open_test() method.
open_test()
Creates a TAP::Formatter::JUnit::Session session, instead of a console formatter session.
TAP::Formatter::JUnit::Session
Prints the summary report (in JUnit) after all tests are run.
Adds the given XML test $suite to the list of test suites that we've executed and need to summarize.
$suite
Graham TerMarsch <cpan@howlingfrog.com>
Many thanks to Andy Armstrong and all those involved for the fabulous set of tests in Test::Harness; they became the basis for the unit tests here.
Test::Harness
Other thanks go out to those that have provided feedback, comments, or patches:
Mark Aufflick Joe McMahon Michael Nachbaur Marc Abramowitz Colin Robertson Phillip Kimmey Dave Lambley
Copyright 2008-2010, Graham TerMarsch. All Rights Reserved.
This is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install TAP::Formatter::JUnit, copy and paste the appropriate command in to your terminal.
cpanm
cpanm TAP::Formatter::JUnit
CPAN shell
perl -MCPAN -e shell install TAP::Formatter::JUnit
For more information on module installation, please visit the detailed CPAN module installation guide.