Author: liuzhe Date: Thu Oct 25 01:59:50 2012 New Revision: 1401948 URL: http://svn.apache.org/viewvc?rev=1401948&view=rev Log: Fixed: Some properties are not generated if testing is terminated before finishing all tests
Modified: incubator/ooo/trunk/test/testcommon/source/org/openoffice/test/common/XMLReporter.java Modified: incubator/ooo/trunk/test/testcommon/source/org/openoffice/test/common/XMLReporter.java URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/test/testcommon/source/org/openoffice/test/common/XMLReporter.java?rev=1401948&r1=1401947&r2=1401948&view=diff ============================================================================== --- incubator/ooo/trunk/test/testcommon/source/org/openoffice/test/common/XMLReporter.java (original) +++ incubator/ooo/trunk/test/testcommon/source/org/openoffice/test/common/XMLReporter.java Thu Oct 25 01:59:50 2012 @@ -32,7 +32,12 @@ import org.junit.runner.notification.Fai import org.junit.runner.notification.RunListener; import org.w3c.dom.Document; import org.w3c.dom.Element; +import org.w3c.dom.NodeList; +/** + * Generate XML test report + * + */ public class XMLReporter extends RunListener { private File outputDir = Testspace.getFile("output"); @@ -152,33 +157,37 @@ public class XMLReporter extends RunList } private void finishSuite() { - testsuiteEl.setAttribute("time", Double.toString((System.currentTimeMillis() - testStart) / 1000.0)); - testsuiteEl.setAttribute("failures", Long.toString(failures)); - testsuiteEl.setAttribute("errors", Long.toString(errors)); - testsuiteEl.setAttribute("tests", Long.toString(tests)); - testsuiteEl.setAttribute("ignored", Long.toString(ignored)); - Element props = doc.createElement("properties"); - testsuiteEl.appendChild(props); - // Add some extra information - System.setProperty("info.os.name", SystemUtil.getOSName()); - System.setProperty("info.os.version", SystemUtil.getOSVersion()); - System.setProperty("info.os.arch", SystemUtil.getOSArch()); - System.setProperty("info.os.arch", SystemUtil.getOSArch()); - System.setProperty("info.ip", SystemUtil.getIPAddress()); - System.setProperty("info.hostname", SystemUtil.getHostName()); - Set<Entry<Object, Object>> entries = System.getProperties().entrySet(); - for (Entry<Object, Object> e : entries) { - Element prop = doc.createElement("property"); - prop.setAttribute("name", "" + e.getKey()); - prop.setAttribute("value", "" + e.getValue()); - props.appendChild(prop); - } - store(); } private void store() { if (doc != null) { + testsuiteEl.setAttribute("time", Double.toString((System.currentTimeMillis() - testStart) / 1000.0)); + testsuiteEl.setAttribute("failures", Long.toString(failures)); + testsuiteEl.setAttribute("errors", Long.toString(errors)); + testsuiteEl.setAttribute("tests", Long.toString(tests)); + testsuiteEl.setAttribute("ignored", Long.toString(ignored)); + NodeList els = testsuiteEl.getElementsByTagName("properties"); + if (els.getLength() > 0) + testsuiteEl.removeChild(els.item(0)); + + Element props = doc.createElement("properties"); + testsuiteEl.appendChild(props); + // Add some extra information + System.setProperty("info.os.name", SystemUtil.getOSName()); + System.setProperty("info.os.version", SystemUtil.getOSVersion()); + System.setProperty("info.os.arch", SystemUtil.getOSArch()); + System.setProperty("info.os.arch", SystemUtil.getOSArch()); + System.setProperty("info.ip", SystemUtil.getIPAddress()); + System.setProperty("info.hostname", SystemUtil.getHostName()); + Set<Entry<Object, Object>> entries = System.getProperties().entrySet(); + for (Entry<Object, Object> e : entries) { + Element prop = doc.createElement("property"); + prop.setAttribute("name", "" + e.getKey()); + prop.setAttribute("value", "" + e.getValue()); + props.appendChild(prop); + } + FileUtil.storeXML(doc, file); File htmlFile = new File(outputDir, "result.html"); InputStream is = getClass().getResourceAsStream("XMLReporter.xsl");