我使用xunitmerge将所有pytest junit xml输出合并为一个junit xml。用于运行pytest和merge的命令在下面,
for i in `ls test_*`
do
test_suit=$(echo $i |cut -d'.' -f1)
py.test $i --tb=long --html=Reports/${test_suit}.html --junitxml=Reports/${test_suit}.xml -vv
done
xunitmerge Reports/*.xml Reports/discovery.xml
最后,所有xml都合并到一个xml文件中 有没有工具可以将多个py.test html文件转换为一个单独的html报告文件?
注意:当我在没有指定test_的情况下运行py.test时,触发所有文件都会自动启动test_但由于我使用了order plugin,在多个文件中订购我不能用来运行py.test而不指定特定的测试用例文件。
答案 0 :(得分:0)
您可以通过以下方式使用XSLT:
例如,假设您有以下XML文件(catalog.xml
):
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<item>
<name>A great book</name>
<price>10</price>
</item>
</catalog>
您可以创建XSL模板(catalog.xsl
):
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My Catalog</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Name</th>
<th>Price</th>
</tr>
<xsl:for-each select="catalog/item">
<tr>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="price"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
然后,您唯一需要做的就是在XML文件中引用您的XSL模板 最后,您的XML文件应如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="catalog.xsl"?>
<catalog>
<item>
<name>A great book</name>
<price>10</price>
</item>
</catalog>
在浏览器中打开您的XML文件,然后使用XSL模板呈现它!