Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
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 :
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>
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