Test2::Harness::Renderer::JUnit - Captures Test2::Harness results and emits a junit xml file.


On the command line, with yath:

JUNIT_TEST_FILE="/tmp/foo.xml" ALLOW_PASSING_TODOS=1 yath test -j18 t/*.t


Test2::Harness::Renderer::JUnit provides JUnit output formatting sufficient to be parsed by Jenkins and hopefully other junit parsers.

This code borrows many ideas from TAP::Formatter::JUnit but unlike that module does not provide a method to emit a different xml file for every testcase. Instead, it defaults to emitting to a single junit.xml to whatever the directory was you were in when you ran yath. This can be overridden by setting the JUNIT_TEST_FILE environment variable

Timing information is included in the JUnit XML since this is native to Test2::Harness

In standard use, "passing TODOs" are treated as failure conditions (and are 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=1 in your environment will turn these into pass conditions.

The JUnit output generated was developed to be used by Jenkins ( That's the build tool we use at the moment and needed to be able to generate JUnit output for.



The source code repository for Test2-Harness-Renderer-JUnit can be found at




Copyright 2019 Todd Rinaldo<lt>>.

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