diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/rjunit/formatter/BaseFormatter.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/rjunit/formatter/BaseFormatter.java index 7a9894207..a5140c411 100644 --- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/rjunit/formatter/BaseFormatter.java +++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/rjunit/formatter/BaseFormatter.java @@ -65,36 +65,19 @@ import org.apache.tools.ant.taskdefs.optional.rjunit.remote.TestRunEvent; */ public abstract class BaseFormatter implements Formatter { - /** number of errors */ - private int errorCount; - - /** number of failures */ - private int failureCount; - - /** number of runs (success + failure + error) */ - private int runCount; - public void init(Properties props) throws BuildException { } - protected void finalize() throws Throwable { - super.finalize(); - close(); - } - public void onTestStarted(TestRunEvent evt) { - runCount++; } public void onTestEnded(TestRunEvent evt) { } public void onTestFailure(TestRunEvent evt) { - failureCount++; } public void onTestError(TestRunEvent evt) { - errorCount++; } public void onSuiteStarted(TestRunEvent evt) { @@ -107,33 +90,9 @@ public abstract class BaseFormatter implements Formatter { } public void onRunEnded(TestRunEvent evt) { - finished(); } public void onRunStopped(TestRunEvent evt) { - finished(); - } - - protected void finished() { - close(); } - /** @return the number of errors */ - protected final int getErrorCount() { - return errorCount; - } - - /** @return the number of failures */ - protected final int getFailureCount() { - return failureCount; - } - - /** @return the number of runs */ - protected final int getRunCount() { - return runCount; - } - - /** helper method to flush and close the stream */ - protected void close() { - } } diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/rjunit/formatter/BaseStreamFormatter.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/rjunit/formatter/BaseStreamFormatter.java index bc52988cc..395725629 100644 --- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/rjunit/formatter/BaseStreamFormatter.java +++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/rjunit/formatter/BaseStreamFormatter.java @@ -63,6 +63,7 @@ import java.util.Properties; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.taskdefs.optional.rjunit.KeepAliveOutputStream; +import org.apache.tools.ant.taskdefs.optional.rjunit.remote.TestRunEvent; /** * Base formatter providing default implementation to deal with @@ -85,6 +86,11 @@ public class BaseStreamFormatter extends BaseFormatter { /** writer to output the data to */ private PrintWriter writer; + protected void finalize() throws Throwable { + super.finalize(); + close(); + } + public void init(Properties props) throws BuildException { String file = props.getProperty(FILE_KEY); OutputStream os = null; @@ -106,13 +112,17 @@ public class BaseStreamFormatter extends BaseFormatter { */ protected void setOutput(OutputStream value) { try { - writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(value, "UTF8")), true); + // do not buffer but flush each line. + writer = new PrintWriter(new OutputStreamWriter(value, "UTF8"), true); } catch (IOException e) { // should not happen throw new BuildException(e); } } + public void onRunEnded(TestRunEvent evt) { + close(); + } protected void close() { if (writer != null) { diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/rjunit/formatter/Resources.properties b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/rjunit/formatter/Resources.properties index 48f65a75d..d4a1e4a4b 100644 --- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/rjunit/formatter/Resources.properties +++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/rjunit/formatter/Resources.properties @@ -1,6 +1,6 @@ # Summary formatter -summary.finished.msg = TestSuite: \nTests run: {0, number, integer}, Failures: {1, number, integer}, Errors: {2, number, integer}, Time elapsed: {3, number, integer} sec\n - +suite.summary.msg = TestSuite: {0}\nTests run: {1, number, integer}, Failures: {2, number, integer}, Errors: {3, number, integer}, Time elapsed: {4, number, integer} sec +run.summary.msg=Tests run: {0, number, integer}, Failures: {1, number, integer}, Errors: {2, number, integer}, Time elapsed: {3, number, integer} sec # Brief formatter brief.status-error.msg = TestCase: {0}\tCaused an ERROR\n{1}\n brief.status-failure.msg = TestCase: {0}\tFAILED\n{1}\n diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/rjunit/formatter/SummaryFormatter.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/rjunit/formatter/SummaryFormatter.java index f65599f77..ad74506f3 100644 --- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/rjunit/formatter/SummaryFormatter.java +++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/rjunit/formatter/SummaryFormatter.java @@ -55,6 +55,8 @@ package org.apache.tools.ant.taskdefs.optional.rjunit.formatter; import org.apache.avalon.excalibur.i18n.ResourceManager; import org.apache.avalon.excalibur.i18n.Resources; +import org.apache.tools.ant.taskdefs.optional.rjunit.remote.TestRunEvent; +import org.apache.tools.ant.taskdefs.optional.rjunit.remote.TestSummary; /** * Display a summary message at the end of a testsuite stating @@ -67,14 +69,24 @@ public class SummaryFormatter extends BaseStreamFormatter { private final static Resources RES = ResourceManager.getPackageResources(SummaryFormatter.class); - protected void finished(long elapsedtime) { - String msg = RES.getString("summary.finished.msg", - new Integer(getRunCount()), - new Integer(getFailureCount()), - new Integer(getErrorCount()), - new Long(elapsedtime / 1000)); + public void onSuiteEnded(TestRunEvent evt) { + TestSummary summary = evt.getSummary(); + String msg = RES.getString("suite.summary.msg", + evt.getName(), + new Integer(summary.runCount()), + new Integer(summary.failureCount()), + new Integer(summary.errorCount()), + new Long(summary.elapsedTime()/1000)); getWriter().println(msg); - close(); } + public void onRunEnded(TestRunEvent evt) { + TestSummary summary = evt.getSummary(); + String msg = RES.getString("run.summary.msg", + new Integer(summary.runCount()), + new Integer(summary.failureCount()), + new Integer(summary.errorCount()), + new Long(summary.elapsedTime()/1000)); + getWriter().println(msg); + } } diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/rjunit/formatter/XMLFormatter.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/rjunit/formatter/XMLFormatter.java index bf15fd6f0..ea4cbed7d 100644 --- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/rjunit/formatter/XMLFormatter.java +++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/rjunit/formatter/XMLFormatter.java @@ -148,21 +148,19 @@ public class XMLFormatter extends BaseStreamFormatter { currentTest.setAttribute(ATTR_NAME, evt.getName()); rootElement.appendChild(currentTest); testElements.put(evt.getName(), currentTest); - super.onTestStarted(evt); - removeEvent(evt); + //removeEvent(evt); } public void onTestEnded(TestRunEvent evt) { - Element currentTest = (Element) testElements.get(evt); + Element currentTest = (Element) testElements.get(evt.getName()); // with a TestSetup, startTest and endTest are not called. if (currentTest == null) { onTestStarted(evt); currentTest = (Element) testElements.get(evt.getName()); } - TestRunEvent start = (TestRunEvent)testStarts.get(evt); + TestRunEvent start = (TestRunEvent)testStarts.get(evt.getName()); float time = ((evt.getTimeStamp() - start.getTimeStamp()) / 1000.0f); currentTest.setAttribute(ATTR_TIME, Float.toString(time)); - super.onTestEnded(evt); removeEvent(evt); } @@ -179,7 +177,6 @@ public class XMLFormatter extends BaseStreamFormatter { nested.setAttribute(ATTR_TYPE, args[0]); Text text = doc.createTextNode(evt.getStackTrace()); nested.appendChild(text); - super.onTestFailure(evt); removeEvent(evt); } @@ -188,18 +185,6 @@ public class XMLFormatter extends BaseStreamFormatter { testElements.remove(evt.getName()); } - public void onRunStarted(TestRunEvent evt) { - super.onRunStarted(evt); - } - - public void onRunEnded(TestRunEvent evt) { - super.onRunEnded(evt); - } - - public void onRunStopped(TestRunEvent evt) { - super.onRunStopped(evt); - } - protected void close() { DOMElementWriter domWriter = new DOMElementWriter(); // the underlying writer uses UTF8 encoding