TAP::Formatter::Bamboo - Harness output delegate for Atlassian's Bamboo CI server


On the command line, with prove:

  prove --formatter TAP::Formatter::Bamboo ...

Or, in your own scripts:

  use TAP::Harness;
  my $harness = TAP::Harness->new( {
      formatter_class => 'TAP::Formatter::Bamboo',
      merge => 1,
  } );


TAP::Formatter::Bamboo provides JUnit output formatting for TAP::Harness, which can be used in Atlassian's Bamboo CI server.

This module is based on TAP::Formatter::JUnit by Graham TerMarsch <>, main differences are:

  • if environment variable TAP_FORMATTER_BAMBOO_OUTFILE is present then it will be used as filepath for output XML (otherwise "results.xml file will be created in current directory)

  • information about passing/failing tests is put to the STDOUT/STDERR respectively, so it can be watched in Bamboo's build logs (also live during build)

  • output of failed tests is saved in 'failure' tag, as Bamboo doesn't care about 'system-out' and 'system-err' tags (but shows content of 'failure')

  • short information about failure reason is put in the first line of 'failure' tag


open_test($test, $parser)

Over-ridden open_test() method.

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


Save resulting XML in results.xml file.


Piotr Piatkowski <>

Graham TerMarsch <> (original TAP::Formatter::JUnit)

Credits from the original module:

Many thanks to Andy Armstrong et al. 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


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


TAP::Formatter::JUnit, TAP::Formatter::Console,