TAP::Harness::JUnit - Generate JUnit compatible output from TAP results
use TAP::Harness::JUnit; my $harness = TAP::Harness::JUnit->new({ xmlfile => 'output.xml', ... }); $harness->runtests(@tests);
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.
This modules inherits all functions from TAP::Harness.
These options are added (compared to TAP::Harness):
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
If provided (and true), test case times will not be recorded.
Specify how to mangle testcase names. This is sometimes required to interact with buggy JUnit consumers that lack sufficient validation. Available values are:
Replace anything but alphanumeric characters with underscores. This is default for historic reasons.
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.
Do not do any transformations.
The name of the output file can be specified in the $JUNIT_OUTPUT_FILE environment variable
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.
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.
<lubo.rintel@gooddata.com>
Following people (in no specific order) have reported problems or contributed code to TAP::Harness::JUnit:
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.
ok
not ok
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.
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 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:
You forgot a '=back' before '=head1'
To install TAP::Harness::JUnit, copy and paste the appropriate command in to your terminal.
cpanm
cpanm TAP::Harness::JUnit
CPAN shell
perl -MCPAN -e shell install TAP::Harness::JUnit
For more information on module installation, please visit the detailed CPAN module installation guide.