2016-04-13 11 views
0

Ich verwende xunitmerge, um alle pytest Junit XML-Ausgabe in einem einzigen Junit XML zu verschmelzen. Befehl pytest und fusionieren sind unten zu laufen,python HTML-Bericht in einen einzigen Bericht zu kombinieren

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 

Hier endlich alle xml sind auf eine einzige XML-Datei zusammengefügt Gibt es eine Tool, um mehrere py.test HTML-Dateien zu einer einzigen HTML-Report-Datei zu konvertieren?

Hinweis: Wenn ich py.test ohne Angabe von test_ es triggert alle Dateien startet mit test_ automatisch, aber da ich Bestellung plugin, Bestellung in mehreren Dateien kann ich nicht verwenden, py.test ohne Angabe spezifischer Testfalldatei ausführen .

Antwort

0

Sie XSLT für das von verwenden können: Ihre XHTML Berichte zu einem Master-HTML-Datei

Zum Beispiel nehmen wir an, dass Sie die folgende XML-Datei (catalog.xml):

<?xml version="1.0" encoding="UTF-8"?> 
<catalog> 
    <item> 
    <name>A great book</name> 
    <price>10</price> 
    </item> 
</catalog> 

Sie können eine XSL-Vorlage (catalog.xsl) erstellen:

<?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> 

Dann das einzige, was Sie tun müssen, ist Ihre XSL-Vorlage in der XML-Datei zu verweisen.
Schließlich sollten Sie Ihre XML-Datei wie folgt aussehen:

<?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> 

Öffnen Sie die XML-Datei in einem Browser und es wird mit der XSL-Vorlage gemacht werden!

+0

Wie kann ich XSLT verwenden Gibt es ein Werkzeug? wenn ich den link überprüft habe, um final xml zu html zu konvertieren, haben sie gerade 2 xml eine eingabe (mein fall) 2nd eine ausgabe xslt datei zur verfügung gestellt, die als html angesehen werden kann. Wie kann diese Konvertierung nicht erwähnt werden in der angegebenen –

+0

Ich denke, ich brauche eine Vorlage (xslt), um Junit Xml in die richtige HTML zu konvertieren. Dann können wir später sowohl die XML-Datei verwenden und ein Python-Skript zum Konvertieren verwenden –

+0

Keine Notwendigkeit, streng eine "Umwandlung" zu tun, einfach Ihre XSL-Vorlage in Ihre XML-Datei verknüpfen (siehe meine aktualisierte Antwort). – filaton

Verwandte Themen