28 #ifndef D_TestOutput_h 29 #define D_TestOutput_h 40 #include "SimpleString.h" 49 explicit TestOutput();
50 virtual ~TestOutput();
52 virtual void printTestsStarted();
53 virtual void printTestsEnded(
const TestResult& result);
54 virtual void printCurrentTestStarted(
const UtestShell& test);
55 virtual void printCurrentTestEnded(
const TestResult& res);
56 virtual void printCurrentGroupStarted(
const UtestShell& test);
57 virtual void printCurrentGroupEnded(
const TestResult& res);
59 virtual void verbose();
61 virtual void printBuffer(
const char*)=0;
62 virtual void print(
const char*);
63 virtual void print(
long);
64 virtual void printDouble(
double);
65 virtual void printFailure(
const TestFailure& failure);
66 virtual void printTestRun(
int number,
int total);
67 virtual void setProgressIndicator(
const char*);
69 virtual void flush()=0;
71 enum WorkingEnvironment {visualStudio, eclipse, detectEnvironment};
73 static void setWorkingEnvironment(WorkingEnvironment workEnvironment);
74 static WorkingEnvironment getWorkingEnvironment();
78 virtual void printEclipseErrorInFileOnLine(SimpleString file,
int lineNumber);
79 virtual void printVisualStudioErrorInFileOnLine(SimpleString file,
int lineNumber);
81 virtual void printProgressIndicator();
82 void printFileAndLineForTestAndFailure(
const TestFailure& failure);
83 void printFileAndLineForFailure(
const TestFailure& failure);
84 void printFailureInTest(SimpleString testName);
85 void printFailureMessage(SimpleString reason);
86 void printErrorInFileOnLineFormattedForWorkingEnvironment(SimpleString testFile,
int lineNumber);
88 TestOutput(
const TestOutput&);
89 TestOutput& operator=(
const TestOutput&);
94 const char* progressIndication_;
96 static WorkingEnvironment workingEnvironment_;
99 TestOutput& operator<<(TestOutput&,
const char*);
100 TestOutput& operator<<(TestOutput&,
long);
110 class ConsoleTestOutput:
public TestOutput
113 explicit ConsoleTestOutput()
116 virtual ~ConsoleTestOutput()
120 virtual void printBuffer(
const char* s) _override;
121 virtual void flush() _override;
124 ConsoleTestOutput(const ConsoleTestOutput&);
125 ConsoleTestOutput& operator=(const ConsoleTestOutput&);
137 class StringBufferTestOutput: public TestOutput
140 explicit StringBufferTestOutput()
144 virtual ~StringBufferTestOutput();
146 void printBuffer(
const char* s) _override
151 void flush() _override
156 const SimpleString& getOutput()
165 StringBufferTestOutput(
const StringBufferTestOutput&);
166 StringBufferTestOutput& operator=(
const StringBufferTestOutput&);
170 class CompositeTestOutput :
public TestOutput
173 virtual void setOutputOne(TestOutput* output);
174 virtual void setOutputTwo(TestOutput* output);
176 CompositeTestOutput();
177 virtual ~CompositeTestOutput();
179 virtual void printTestsStarted();
180 virtual void printTestsEnded(
const TestResult& result);
182 virtual void printCurrentTestStarted(
const UtestShell& test);
183 virtual void printCurrentTestEnded(
const TestResult& res);
184 virtual void printCurrentGroupStarted(
const UtestShell& test);
185 virtual void printCurrentGroupEnded(
const TestResult& res);
187 virtual void verbose();
188 virtual void color();
189 virtual void printBuffer(
const char*);
190 virtual void print(
const char*);
191 virtual void print(
long);
192 virtual void printDouble(
double);
193 virtual void printFailure(
const TestFailure& failure);
194 virtual void setProgressIndicator(
const char*);
196 virtual void flush();
199 CompositeTestOutput(
const TestOutput&);
200 CompositeTestOutput& operator=(
const TestOutput&);
203 TestOutput* outputOne_;
204 TestOutput* outputTwo_;