我正在使用XML来测试用例。
<?xml version="1.0" encoding="UTF-8"?>
<TestResultArray xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<TestResult>
<Name>Test1</Name>
<Date>9/15/2016</Date>
<Time>4:09 PM</Time>
<Id>697</Id>
<Steps>
<TestStep>
<Number>2</Number>
<Status>PASS</Status>
</TestStep>
<TestStep>
<Number>3</Number>
<Status>PASS</Status>
</TestStep>
<TestStep>
<Number>4</Number>
<Status>PASS</Status>
</TestStep>
</Steps>
</TestResult>
<TestResult>
<Name>Test2</Name>
<Date>9/15/2016</Date>
<Time>4:09 PM</Time>
<Id>697</Id>
<Steps>
<TestStep>
<Number>2</Number>
<Status>FAIL</Status>
</TestStep>
<TestStep>
<Number>3</Number>
<Status>PASS</Status>
</TestStep>
<TestStep>
<Number>4</Number>
<Status>PASS</Status>
</TestStep>
</Steps>
</TestResult>
<TestResult>
<Name>Test3</Name>
<Date>9/15/2016</Date>
<Time>4:09 PM</Time>
<Id>697</Id>
<Steps>
<TestStep>
<Number>2</Number>
<Status>FAIL</Status>
</TestStep>
<TestStep>
<Number>3</Number>
<Status>FAIL</Status>
</TestStep>
<TestStep>
<Number>4</Number>
<Status>FAIL</Status>
</TestStep>
</Steps>
</TestResult>
</TestResultArray>
我试图获得测试用例的总数,传递的数量和失败的测试用例的数量。
要求是,如果<TestStep>
中的任何一个失败,则整个测试用例<TestResult>
应计为失败。
我可以使用
获取测试用例的总数<tr>
<td> <xsl:value-of select="count(TestResultArray/TestResult)" /> </td>
</tr>
如何使用XSLT获取通过和失败的测试用例<TestResult>
(不是<TestStep>
)的总数?
对于上面的XML示例,输出应为
Total Testcase = 3,
Passed = 1,
Failed = 2
答案 0 :(得分:1)
这是一个可能的解决方案:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="text" />
<xsl:template match="/*">
<xsl:text>Total Testcase = </xsl:text>
<xsl:value-of select="count(*)"/>
<xsl:text>,
</xsl:text>
<xsl:text>Passed = </xsl:text>
<xsl:value-of select="count(*[not(Steps/*/Status = 'FAIL')])"/>
<xsl:text>,
</xsl:text>
<xsl:text>Failed = </xsl:text>
<xsl:value-of select="count(*[Steps/*/Status = 'FAIL'])"/>
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
在源XML上运行时,会产生以下结果:
Total Testcase = 3,
Passed = 1,
Failed = 2