2012-04-10 7 views
3

Ich habe versucht, Code zu schreiben, um die XML-Ausgabe von einem Junit Ergebnisobjekt zu generieren, das das Standardschema für Junit-Berichte verwendet.JUnit 4 Ergebnis zu XML-Transformation

Ich starte meine Tests mit Junit 4, daher verwende ich eine JunitCore-Instanz, um meine Tests durchzuführen. Daher ist es in meinem Fall nicht sinnvoll, die Ausführung mit einer JunitTask-Instanz zu duplizieren.

Ich übergehe die Methode testRunfinished (Result), die in Junit4 verfügbar ist. Ich möchte hier die Transformationslogik schreiben, so dass sie das XML generiert, das dann mit dem Standard XSLT betrachtet werden kann.

Ein Weg wäre, einen Transformator zu schreiben, der ein Dokumentobjekt erstellt und dann programmatisch Knoten hinzufügt und somit das XML erzeugt. Aber das würde den Bericht straffen.

Alle von Ant zur Verfügung gestellten Klassen scheinen mit Junit3 zu funktionieren und scheinen die Probleme bei der Ausführung von Tests und Berichtsergebnissen nicht zu trennen. Daher erzwingen sie die Ausführung (XMLResultAggregator).

  1. Gibt es eine Standardmethode, dies zu tun? Eine Bibliothek von Ant oder Junit ausgestellt?
  2. Gibt es einen alternativen Ansatz (Ant ist keine Option für mich)?

Vielen Dank im Voraus.

Antwort

0

Warum generieren Sie nicht eigenständiges HTML mit CSS in Kopfberichten? Oder sogar schlicht txt reporst.

Ich generierte meine XML-Berichte mit einer Vorlage, die ich kopierte und füllte dann die Felder mit einem Java XML Framework.

import javax.xml.parsers.DocumentBuilder; 
import javax.xml.parsers.DocumentBuilderFactory; 
import javax.xml.transform.TransformerFactory; 
import javax.xml.transform.dom.DOMSource; 
import javax.xml.transform.stream.StreamResult; 
+0

Ja, wie ich bereits erwähnte, ist es eine der Brute-Force-Optionen, aber wie bereits erwähnt, würde es die Berichtsstruktur an meinem Transformator fest verdrahten. Ich bin neugierig, wenn es eine API gibt, die Methoden zur Verfügung stellt, um ein Result-Objekt von Junit in das XML-Dokument zu transformieren. – Neel