Skip to content


Subversion checkout URL

You can clone with
Download ZIP


Write a formatter for Jenkins/JUnit #158

schwern opened this Issue · 7 comments

4 participants


Write a formatter which outputs the JUnit XML which Jenkins consumes. I expect it will be the most popular format after TAP. It will exercise the flexibility of the formatter.

Schemas to work from can be found here:

See Test::Builder2::Formatter and Test::Builder2::EventWatcher for details about writing a formatter. Test::Builder2::TAP::v13 is currently the most fleshed out.


Jenkins supports TAP. Just sayin'


@leto Yes. TAP and JUnit output different types of information, so it would be nice if our tests could feed Jenkins the details it wants. It also means Perl devs don't have to go begging to the Jenkins admin to install a plugin. In addition, there are other tools which speak JUnit it would be nice to talk to. Finally, it will be an excellent test for the flexibility of the system.

@ovid Thanks for the links!


Note that the XSD file says "XML Schema for XUnit tests output".
XUnit, not JUnit as this format is language agnostic (or acmeist).

I find TAP output more useful because it has TODO, which XUnit lacks.


@dolmen Thanks, but this isn't a format debate.

I don't understand your point about the XSD file. If it's relevant to implementing a [JX]Unit formatter, could you explain?


My point is only about the naming of the formatter plugin.


@dolmen I don't believe the XSD file that Ovid posted is definitive. In fact, I don't think there is a definitive XUnit/JUnit XML schema. The best I've seen is what Ant outputs.

Most everything I read refers to it as the JUnit XML schema. Jenkins does and so does Ant. It's cross-language no matter what we call it, so it's best to name it by the name people expect.

@schwernbot schwernbot referenced this issue in Test-More/TB2

Write a formatter for Jenkins/JUnit #27

@schwern schwern closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.