NAME

    TAP::Formatter::JUnit - Harness output delegate for JUnit output

SYNOPSIS

    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);

DESCRIPTION

    This code is currently in alpha state and is subject to change.

    TAP::Formatter::JUnit provides JUnit output formatting for
    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).

    Timing information is included in the JUnit XML, if you specified
    --timer when you ran prove.

    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.

    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.

ATTRIBUTES

    testsuites

      List-ref of test suites that have been executed.

    xml

      An XML::Generator instance, to be used to generate XML output.

METHODS

    open_test($test, $parser)

      Over-ridden open_test() method.

      Creates a TAP::Formatter::JUnit::Session session, instead of a
      console formatter session.

    summary()

      Prints the summary report (in JUnit) after all tests are run.

    add_testsuite($suite)

      Adds the given XML test $suite to the list of test suites that we've
      executed and need to summarize.

AUTHOR

    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.

    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

    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.

SEE ALSO

    TAP::Formatter::Console

    TAP::Formatter::JUnit::Session

    Hudson home page <http://hudson.dev.java.net/>

    JUnitXSchema.xsd
    <http://jra1mw.cvs.cern.ch:8180/cgi-bin/jra1mw.cgi/org.glite.testing.unit/config/JUnitXSchema.xsd?view=markup&content-type=text%2Fvnd.viewcvs-markup&revision=HEAD>

    JUnit parsing in Bamboo
    <http://confluence.atlassian.com/display/BAMBOO/JUnit+parsing+in+Bamboo>.

