Hello Graham, I am attempting to aggregate all of my (junit) tap reports and generate a html report using Ant’s junitreport task. However the junitreport task fails with "not a valid testsuite XML document" because the tap reports are not in a standard junit format. I've also tried using maven to generate html reports and it also fails in the same way. So yes, the tap xml file is compatible with Jenkins but not ant or maven. If the 'testsuites' element is removed it will be compatible with all the tools. Also I think it would look nicer in the Jenkins test reports.
I entered this bug on your project: https://rt.cpan.org/Public/Bug/Display.html?id=69058 Included is a link to the junit schema and a sample ant project showing the error. Right now my workaround is exactly as you suggested. I have an ant task that strips the 'testsuites' element before running generating the html report. -Khai -----Original Message----- From: Graham TerMarsch [mailto:c...@howlingfrog.com] Sent: Sunday, June 26, 2011 10:43 PM To: perl-qa@perl.org Cc: Cosimo Streppone; Khai Do Subject: Re: testsuites element in TAP::Formatter::JUnit reports On June 25, 2011, Cosimo Streppone wrote: > On Fri, 24 Jun 2011 20:18:44 +0200, Khai Do <khai...@impinj.com> wrote: > > The TAP::Formatter::JUnit formatter isn't creating 100% compatible junit > > reports. The problem is that the generated reports contain a root level > > 'testsuites' element which isn't the same as an individual junit report. > > Junit reports from junit framework only contain 'testsuite' elements. > > I use TAP::Harness::JUnit, > > http://my.opera.com/cstrep/blog/2011/03/08/continuous-integration-of-perl- > based-projects-in-hudson-jenkins > > but AFAIK that one also builds an XML file with <testsuites> as root > element. Yes, both TAP::Harness::JUnit and TAP::Formatter::JUnit generate output with a <testsuites> root element, as they're both designed to generate output suitable for feeding into a "Hudson/Jenkins" Continuous Integration instance. Khai, if you specifically need results _without_ that element, could you not post-process the output to remove it? Further, what are you trying to feed the JUnit results into? -- Graham TerMarsch