1 /* BriefFormatter.java */
2
3 package org.quilt.reports;
4
5 import java.io.IOException;
6 import java.io.OutputStream;
7 import java.io.PrintWriter;
8 import java.io.StringWriter;
9 import java.text.NumberFormat;
10
11 import junit.framework.AssertionFailedError;
12 import junit.framework.Test;
13
14 import org.apache.tools.ant.BuildException;
15
16 import org.quilt.framework.*;
17 import org.quilt.runner.Runner;
18
19 public class BriefFormatter extends BaseFormatter {
20
21 /*** No-arg constructor. */
22 public BriefFormatter() {
23 results = new StringWriter();
24 resultWriter = new PrintWriter(results);
25 }
26
27 // INTERFACE FORMATTER //////////////////////////////////////////
28
29 /***
30 * End the test suite: overrides basic mehod.
31 */
32 public void endTestSuite(QuiltTest suite) throws BuildException {
33 StringBuffer sb = new StringBuffer("Testsuite: " + suite.getName()
34 + "\nTests run: " + suite.runCount()
35 + ", Failures: " + suite.failureCount()
36 + ", Errors: " + suite.errorCount()
37 + ", Time elapsed: "
38 + numberFormat.format( suite.getRunTime() / 1000.0)
39 + " sec\n\n" );
40
41 if (systemOutput != null && systemOutput.length() > 0) {
42 sb.append(
43 "------------- Standard Output ----------------\n"
44 + systemOutput
45 + "------------- ---------------- ---------------\n");
46 }
47
48 if (systemError != null && systemError.length() > 0) {
49 sb.append(
50 "------------- Standard Error -----------------\n"
51 + systemError
52 + "------------- ---------------- ---------------\n");
53 }
54
55 if (output != null) {
56 try {
57 output.write(sb.toString());
58 resultWriter.close();
59 output.write(results.toString());
60 output.flush();
61 } finally {
62 if (out != System.out &&
63 out != System.err) {
64 try {
65 out.close();
66 } catch (IOException e) {
67 }
68 }
69 }
70 }
71 }
72
73 // INTERFACE TESTLISTENER ///////////////////////////////////////
74 /***
75 * A test failed - overrides BasicFormattter method.
76 */
77 public void addFailure(Test test, Throwable t) {
78 formatError("\tFAILED", test, t);
79 }
80
81 /***
82 * A test failed - overrides BasicFormattter method. Interface for
83 * JUnit > 3.4.
84 */
85 public void addFailure(Test test, AssertionFailedError t) {
86 addFailure(test, (Throwable) t);
87 }
88
89 /***
90 * A test caused an unexpected error.
91 */
92 public void addError(Test test, Throwable error) {
93 formatError("\tCaused an ERROR", test, error);
94 }
95
96 // OTHER METHODS ////////////////////////////////////////////////
97
98 /*** Format an error and print it. */
99 private synchronized void formatError(String msg, Test test,
100 Throwable error) {
101 if (test == null) {
102 resultWriter.println("Null test: " + msg);
103
104 } else {
105 endTest(test);
106 resultWriter.println("Testcase: " + test + ": " + msg);
107 }
108 resultWriter.println(error.getMessage());
109 String strace = runner.getFilteredTrace(error, filtertrace);
110 resultWriter.println(strace);
111 resultWriter.println();
112 }
113 }
This page was automatically generated by Maven