1 54 55 package junitx.runner.listener; 56 57 import java.util.List ; 58 import java.util.Properties ; 59 import java.util.Vector ; 60 61 import junit.framework.Test; 62 import junit.framework.TestCase; 63 import junit.framework.TestResult; 64 import junitx.runner.TestRunner; 65 import junitx.runner.util.DisplayUtil; 66 import junitx.util.ThrowableUtil; 67 68 72 public class DefaultConsole extends AbstractRunListener { 73 74 private final static int MAX_COLUMNS = 50; 75 76 private boolean m_display_ignored = true; 77 78 private List m_warnings = new Vector (); 79 private List m_ignored = new Vector (); 80 private List m_failures = new Vector (); 81 private List m_errors = new Vector (); 82 83 int m_columns = 0; 84 85 public void init(Properties props) throws Exception { 86 super.init(props); 87 88 m_display_ignored = 89 Boolean.valueOf(props.getProperty("junitx.ConsoleListener.display_ignored", "true")).booleanValue(); 90 } 91 92 public void runStarted(Test test, long time) { 93 } 94 95 public void runStopped(Test test, long duration) { 96 } 97 98 public void runEnded(Test test, TestResult result, long duration) { 99 System.out.println(" "); 100 System.out.println(" "); 101 System.out.print("Elapsed time: " + DisplayUtil.elapsedTimeAsString(duration) + " sec"); 102 int runCount = result.runCount() - m_warnings.size(); 103 System.out.print(" (" + runCount + " test" + (runCount == 1 ? "" : "s")); 104 if (m_ignored.size() == 0) { 105 System.out.println(")"); 106 } else { 107 System.out.println(" + " + m_ignored.size() + " ignored)"); 108 } 109 displayIgnored(); 110 displayWarnings(); 111 displayFailures(); 112 displayErrors(); 113 } 114 115 public void testIgnored(Test test) { 116 m_ignored.add(test); 117 } 118 119 public void testStarted(Test test, TestResult result) { 120 } 121 122 public void testFailure(Test test, TestResult result, Throwable t) { 123 if (test instanceof TestCase) { 124 TestCase testcase = (TestCase) test; 125 if (testcase.getName().equals("warning")) { 126 m_warnings.add(new FailureDef(test, t)); 127 return; 128 } 129 } 130 m_failures.add(new FailureDef(test, t)); 131 display('F'); 132 } 133 134 public void testError(Test test, TestResult result, Throwable t) { 135 m_errors.add(new FailureDef(test, t)); 136 display('E'); 137 } 138 139 public void testSuccess(Test test, TestResult result) { 140 display('*'); 141 } 142 143 protected void display(char character) { 144 System.out.print(character); 145 if (++m_columns >= MAX_COLUMNS) { 146 System.out.println(); 147 m_columns = 0; 148 } 149 System.out.flush(); 150 } 151 152 protected void displayFailures() { 153 if (m_failures.size() > 0) { 154 System.out.println(" \nFAILURES\n "); 155 for (int ii = 0; ii < m_failures.size(); ii++) { 156 FailureDef defect = (FailureDef) m_failures.get(ii); 157 displayDefect(defect, ii); 158 } 159 } 160 } 161 162 protected void displayErrors() { 163 if (m_errors.size() > 0) { 164 System.out.println(" \nERRORS\n "); 165 for (int ii = 0; ii < m_errors.size(); ii++) { 166 FailureDef defect = (FailureDef) m_errors.get(ii); 167 displayDefect(defect, ii); 168 } 169 } 170 } 171 172 protected void displayDefect(FailureDef defect, int pos) { 173 String trace = ThrowableUtil.getStackTrace(defect.m_throwable); 174 System.out.print((pos + 1) + ") "); 175 if (defect.m_test instanceof TestCase ) { 176 System.out.print(((TestCase)defect.m_test).getName()); 177 System.out.println(" (" + defect.m_test.getClass().getName() + ")"); 178 } else { 179 System.out.println(defect.m_test.getClass().getName()); 180 } 181 if (m_filtering) { 182 System.out.print(TestRunner.filterStacktrace(trace)); 183 } else { 184 System.out.println(trace); 185 } 186 System.out.println(" "); 187 } 188 189 protected void displayWarnings() { 190 if (m_warnings.size() > 0) { 191 System.out.println(" \nWARNINGS\n "); 192 for (int ii = 0; ii < m_warnings.size(); ii++) { 193 FailureDef failure = (FailureDef) m_warnings.get(ii); 194 System.out.println((ii + 1) + ") " + failure.m_throwable.getMessage()); 195 } 196 System.out.println(" "); 197 } 198 } 199 200 protected void displayIgnored() { 201 if (m_display_ignored && m_ignored.size() > 0) { 202 System.out.println(" \nIGNORED\n "); 203 for (int ii = 0; ii < m_ignored.size(); ii++) { 204 TestCase testcase = (TestCase) m_ignored.get(ii); 205 206 System.out.print((ii + 1) + ") "); 207 System.out.print(testcase.getName()); 208 System.out.println(" (" + testcase.getClass().getName() + ")"); 209 } 210 } 211 } 212 213 private class FailureDef { 214 Test m_test; 215 Throwable m_throwable; 216 217 public FailureDef(Test test, Throwable throwable) { 218 m_test = test; 219 m_throwable = throwable; 220 } 221 } 222 223 } 224 | Popular Tags |