Maven 1.x Dashboard Plugin

JUnit pass rate no longer showing

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Blocker Blocker
  • Resolution: Fixed
  • Affects Version/s: 1.8
  • Fix Version/s: 1.9
  • Component/s: None
  • Labels:
    None
  • Environment:
    Maven 1.0.2
    Dashboard 1.9
  • Number of attachments :
    0

Description

JUnit passrates are no longer showing when using dashboard version
1.9. I traced the problem down to the JUnit aggregator. It contains
these linen:

<j:choose>
<x:set var="nbTests" select="sum($doc/testsuites/testsuite/@tests)"/>
<a:echo>nr of tests: ${nbTests}</a:echo>
<j:when test="${nbTests != 0}">
<x:parse var="doc" xml="${artifactAsFile}"/>
<x:expr select="floor(100 - 100 *
(sum($doc/testsuites/testsuite/@failures) +
sum($doc/testsuites/testsuite/@errors)) div
sum($doc/testsuites/testsuite/@tests))"/>
%
</j:when>
<j:otherwise>
<j:expr value="-"/>
</j:otherwise>
</j:choose>

The problem is that the xml file is being parsed after the nr of unit
tests has been calculated (using the $doc variable, but it is not
initialized yet). The solution: move the parsing of the xml file
higher, like this:

<x:parse var="doc" xml="${artifactAsFile}"/>
<j:choose>
<x:set var="nbTests" select="sum($doc/testsuites/testsuite/@tests)"/>
<a:echo>nr of tests: ${nbTests}</a:echo>
<j:when test="${nbTests != 0}">
<x:expr select="floor(100 - 100 *
(sum($doc/testsuites/testsuite/@failures) +
sum($doc/testsuites/testsuite/@errors)) div
sum($doc/testsuites/testsuite/@tests))"/>
%
</j:when>
<j:otherwise>
<j:expr value="-"/>
</j:otherwise>
</j:choose>

Activity

Hide
Vincent Massol added a comment -

Wim, I'm trying to apply your patch but I don't understand it...

Could you please be more explicit (of course a SCM diff would be the best)? For example the junitpassrate.jelly file contains:

<j:jelly xmlns:j="jelly:core" xmlns:a="jelly:ant" xmlns:x="jelly:xml" xmlns:u="jelly:util">

<u:file var="artifactAsFile" name="${maven.dashboard.aggregator.junittests.artifact}"/>
<j:choose>
<j:when test="${artifactAsFile.exists()}">
<j:choose>
<x:set var="nbTests" select="sum($doc/testsuites/testsuite/@tests)"/>
<j:when test="${nbTests != 0}">
<x:parse var="doc" xml="${artifactAsFile}"/>
<x:expr select="floor(100 - 100 * (sum($doc/testsuites/testsuite/@failures) + sum($doc/testsuites/testsuite/@errors)) div sum($doc/testsuites/testsuite/@tests))"/>
%
</j:when>
<j:otherwise>
<j:expr value="-"/>
</j:otherwise>
</j:choose>
</j:when>
<j:otherwise>
<j:expr value="-"/>
</j:otherwise>
</j:choose>

</j:jelly>

What do you want to modify?

Thanks

Show
Vincent Massol added a comment - Wim, I'm trying to apply your patch but I don't understand it... Could you please be more explicit (of course a SCM diff would be the best)? For example the junitpassrate.jelly file contains: <j:jelly xmlns:j="jelly:core" xmlns:a="jelly:ant" xmlns:x="jelly:xml" xmlns:u="jelly:util"> <u:file var="artifactAsFile" name="${maven.dashboard.aggregator.junittests.artifact}"/> <j:choose> <j:when test="${artifactAsFile.exists()}"> <j:choose> <x:set var="nbTests" select="sum($doc/testsuites/testsuite/@tests)"/> <j:when test="${nbTests != 0}"> <x:parse var="doc" xml="${artifactAsFile}"/> <x:expr select="floor(100 - 100 * (sum($doc/testsuites/testsuite/@failures) + sum($doc/testsuites/testsuite/@errors)) div sum($doc/testsuites/testsuite/@tests))"/> % </j:when> <j:otherwise> <j:expr value="-"/> </j:otherwise> </j:choose> </j:when> <j:otherwise> <j:expr value="-"/> </j:otherwise> </j:choose> </j:jelly> What do you want to modify? Thanks
Hide
Wim Deblauwe added a comment -

Move this line:
<x:parse var="doc" xml="${artifactAsFile}"/>

above this line:
<x:set var="nbTests" select="sum($doc/testsuites/testsuite/@tests)"/>

Otherwise $doc is not yet initialized when you try to access it.

Show
Wim Deblauwe added a comment - Move this line: <x:parse var="doc" xml="${artifactAsFile}"/> above this line: <x:set var="nbTests" select="sum($doc/testsuites/testsuite/@tests)"/> Otherwise $doc is not yet initialized when you try to access it.
Hide
Vincent Massol added a comment -

Applied thanks. I was not able to reproduce the problem using the existing test suite for the dashboard report...

Show
Vincent Massol added a comment - Applied thanks. I was not able to reproduce the problem using the existing test suite for the dashboard report...

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated:
    Resolved: