KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > junit > internal > runners > TextListener


1 package org.junit.internal.runners;
2
3 import java.io.PrintStream JavaDoc;
4 import java.text.NumberFormat JavaDoc;
5
6 import org.junit.runner.Description;
7 import org.junit.runner.Result;
8 import org.junit.runner.notification.Failure;
9 import org.junit.runner.notification.RunListener;
10
11 public class TextListener extends RunListener {
12
13     private final PrintStream JavaDoc fWriter;
14
15     public TextListener() {
16         this(System.out);
17     }
18
19     public TextListener(PrintStream JavaDoc writer) {
20         this.fWriter= writer;
21     }
22
23     @Override JavaDoc
24     public void testRunFinished(Result result) {
25         printHeader(result.getRunTime());
26         printFailures(result);
27         printFooter(result);
28     }
29
30     @Override JavaDoc
31     public void testStarted(Description description) {
32         fWriter.append('.');
33     }
34
35     @Override JavaDoc
36     public void testFailure(Failure failure) {
37         fWriter.append('E');
38     }
39     
40     @Override JavaDoc
41     public void testIgnored(Description description) {
42         fWriter.append('I');
43     }
44     
45     /*
46      * Internal methods
47      */

48
49     private PrintStream JavaDoc getWriter() {
50         return fWriter;
51     }
52
53     protected void printHeader(long runTime) {
54         getWriter().println();
55         getWriter().println("Time: " + elapsedTimeAsString(runTime));
56     }
57
58     protected void printFailures(Result result) {
59         if (result.getFailureCount() == 0)
60             return;
61         if (result.getFailureCount() == 1)
62             getWriter().println("There was " + result.getFailureCount() + " failure:");
63         else
64             getWriter().println("There were " + result.getFailureCount() + " failures:");
65         int i= 1;
66         for (Failure each : result.getFailures())
67             printFailure(each, i++);
68     }
69
70     protected void printFailure(Failure failure, int count) {
71         printFailureHeader(failure, count);
72         printFailureTrace(failure);
73     }
74
75     protected void printFailureHeader(Failure failure, int count) {
76         getWriter().println(count + ") " + failure.getTestHeader());
77     }
78
79     protected void printFailureTrace(Failure failure) {
80         getWriter().print(failure.getTrace());
81     }
82
83     protected void printFooter(Result result) {
84         if (result.wasSuccessful()) {
85             getWriter().println();
86             getWriter().print("OK");
87             getWriter().println(" (" + result.getRunCount() + " test" + (result.getRunCount() == 1 ? "" : "s") + ")");
88
89         } else {
90             getWriter().println();
91             getWriter().println("FAILURES!!!");
92             getWriter().println("Tests run: " + result.getRunCount() + ", Failures: " + result.getFailureCount());
93         }
94         getWriter().println();
95     }
96
97     /**
98      * Returns the formatted string of the elapsed time. Duplicated from
99      * BaseTestRunner. Fix it.
100      */

101     protected String JavaDoc elapsedTimeAsString(long runTime) {
102         return NumberFormat.getInstance().format((double) runTime / 1000);
103     }
104 }
105
Popular Tags