The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

TAP::Harness::JUnit - Generate JUnit compatible output from TAP results

SYNOPSIS

    use TAP::Harness::JUnit;
    my $harness = TAP::Harness::JUnit->new({
        xmlfile => 'output.xml',
        ...
    });
    $harness->runtests(@tests);

DESCRIPTION

The only difference between this module and TAP::Harness is that this adds optional 'xmlfile' argument, that causes the output to be formatted into XML in format similar to one that is produced by JUnit testing framework.

METHODS

This modules inherits all functions from TAP::Harness.

new

These options are added (compared to TAP::Harness):

xmlfile

Name of the file XML output will be saved to. In case this argument is ommited, default of "junit_output.xml" is used and a warning is issued.

Alternatively, the name of the output file can be specified in the $JUNIT_OUTPUT_FILE environment variable

notimes (DEPRECATED)

If provided (and true), test case times will not be recorded.

namemangle

Specify how to mangle testcase names. This is sometimes required to interact with buggy JUnit consumers that lack sufficient validation. Available values are:

hudson

Replace anything but alphanumeric characters with underscores. This is default for historic reasons.

perl (RECOMMENDED)

Replace slashes in directory hierarchy with dots so that the filesystem layout resemble Java class hierarchy.

This is the recommended setting and may become a default in future.

none

Do not do any transformations.

ENVIRONMENT VARIABLES

The name of the output file can be specified in the $JUNIT_OUTPUT_FILE environment variable

SEE ALSO

JUnit XML schema was obtained from http://jra1mw.cvs.cern.ch:8180/cgi-bin/jra1mw.cgi/org.glite.testing.unit/config/JUnitXSchema.xsd?view=markup.

ACKNOWLEDGEMENTS

This module was partly inspired by Michael Peters' TAP::Harness::Archive. It was originally written by Lubomir Rintel (GoodData) <lubo.rintel@gooddata.com> and includes code from several contributors.

Following people (in no specific order) have reported problems or contributed code to TAP::Harness::JUnit:

David Ritter
Jeff Lavallee
Andreas Pohl
Ton Voon
Kevin Goess

BUGS

The comments that are above the ok or not ok are considered the output of the test. This, though being more logical, is against TAP specification.

XML::Simple is used to generate the output. It is suboptimal and involves some hacks.

During testing, the resulting files are not tested against the schema, which would be a good thing to do.

CONTRIBUTING

Source code for TAP::Harness::JUnit is kept in a public GIT repository. Visit https://github.com/jlavallee/tap-harness-junit.

Bugs reports and feature enhancement requests are tracked at https://rt.cpan.org/Public/Dist/Display.html?Name=TAP-Harness-JUnit.

COPYRIGHT & LICENSE

Copyright 2008, 2009, 2010, 2011 TAP::Harness::JUnit contributors. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 87:

You forgot a '=back' before '=head1'