@@ -72,35 +72,65 @@ THE SOFTWARE.
7272 </xsl : for-each >
7373 </xsl : template >
7474
75- <xsl : template match =" /TestLog/TestSuite " >
75+ <xsl : template match =" /TestLog" >
7676 <xsl : variable name =" tsCount" select =" count(./TestSuite)" />
7777 <xsl : variable name =" tcCount" select =" count(./TestCase)" />
78+ <xsl : variable name =" tests" select =" count(.//TestCase[count(descendant::TestSuite) = 0])" />
79+ <xsl : variable name =" errors" select =" count(.//TestCase/FatalError)+count(.//TestCase/Exception)" />
80+ <xsl : variable name =" failures" select =" count(.//TestCase/Error)" />
81+
82+ <xsl : choose >
83+ <xsl : when test =" $tsCount > 1 and $tcCount = 0" >
84+ <xsl : element name =" testsuites" >
85+ <xsl : attribute name =" tests" >
86+ <xsl : value-of select =" $tests" />
87+ </xsl : attribute >
88+
89+ <xsl : attribute name =" errors" >
90+ <xsl : value-of select =" $errors" />
91+ </xsl : attribute >
92+
93+ <xsl : attribute name =" failures" >
94+ <xsl : value-of select =" $failures" />
95+ </xsl : attribute >
96+
97+ <xsl : attribute name =" name" >
98+ <xsl : value-of >Test Suite Collection</xsl : value-of >
99+ </xsl : attribute >
100+
101+ <xsl : for-each select =" descendant::TestSuite[count(./TestCase) > 0]" >
102+ <xsl : call-template name =" testSuite" />
103+ </xsl : for-each >
104+ </xsl : element >
105+ </xsl : when >
106+ <xsl : otherwise >
107+ <xsl : element name =" testsuite" >
108+ <xsl : attribute name =" tests" >
109+ <xsl : value-of select =" $tests" />
110+ </xsl : attribute >
111+
112+ <xsl : attribute name =" errors" >
113+ <xsl : value-of select =" $errors" />
114+ </xsl : attribute >
115+
116+ <xsl : attribute name =" failures" >
117+ <xsl : value-of select =" $failures" />
118+ </xsl : attribute >
119+
120+ <xsl : attribute name =" name" >
121+ <xsl : value-of select =" ./TestSuite/@name" />
122+ </xsl : attribute >
123+
124+ <xsl : for-each select =" ./TestSuite//descendant::TestSuite[count(./TestCase) > 0]" >
125+ <xsl : call-template name =" testSuite" />
126+ </xsl : for-each >
78127
79- <xsl : element name =" testsuite" >
80- <xsl : attribute name =" tests" >
81- <xsl : value-of select =" count(.//TestCase[count(descendant::TestSuite) = 0])" />
82- </xsl : attribute >
83-
84- <xsl : attribute name =" errors" >
85- <xsl : value-of select =" count(.//TestCase/FatalError)+count(.//TestCase/Exception)" />
86- </xsl : attribute >
87-
88- <xsl : attribute name =" failures" >
89- <xsl : value-of select =" count(.//TestCase/Error)" />
90- </xsl : attribute >
91-
92- <xsl : attribute name =" name" >
93- <xsl : value-of select =" @name" />
94- </xsl : attribute >
95-
96- <xsl : for-each select =" descendant::TestSuite[count(./TestCase) > 0]" >
97- <xsl : call-template name =" testSuite" />
98- </xsl : for-each >
99-
100- <xsl : for-each select =" ./TestCase" >
101- <xsl : call-template name =" testCase" />
102- </xsl : for-each >
103- </xsl : element >
128+ <xsl : for-each select =" ./TestSuite/TestCase" >
129+ <xsl : call-template name =" testCase" />
130+ </xsl : for-each >
131+ </xsl : element >
132+ </xsl : otherwise >
133+ </xsl : choose >
104134 </xsl : template >
105135
106136 <xsl : template name =" testSuite" >
0 commit comments