1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
#ifndef UNITTEST_RECORDINGREPORTER_H
#define UNITTEST_RECORDINGREPORTER_H
#include "UnitTest++/TestReporter.h"
#include <cstring>
#include "UnitTest++/TestDetails.h"
struct RecordingReporter : public UnitTest::TestReporter
{
private:
enum { kMaxStringLength = 256 };
public:
RecordingReporter()
: testRunCount(0)
, testFailedCount(0)
, lastFailedLine(0)
, testFinishedCount(0)
, lastFinishedTestTime(0)
, summaryTotalTestCount(0)
, summaryFailedTestCount(0)
, summaryFailureCount(0)
, summarySecondsElapsed(0)
{
lastStartedSuite[0] = '\0';
lastStartedTest[0] = '\0';
lastFailedFile[0] = '\0';
lastFailedSuite[0] = '\0';
lastFailedTest[0] = '\0';
lastFailedMessage[0] = '\0';
lastFinishedSuite[0] = '\0';
lastFinishedTest[0] = '\0';
}
virtual void ReportTestStart(UnitTest::TestDetails const& test)
{
using namespace std;
++testRunCount;
strcpy(lastStartedSuite, test.suiteName);
strcpy(lastStartedTest, test.testName);
}
virtual void ReportFailure(UnitTest::TestDetails const& test, char const* failure)
{
using namespace std;
++testFailedCount;
strcpy(lastFailedFile, test.filename);
lastFailedLine = test.lineNumber;
strcpy(lastFailedSuite, test.suiteName);
strcpy(lastFailedTest, test.testName);
strcpy(lastFailedMessage, failure);
}
virtual void ReportTestFinish(UnitTest::TestDetails const& test, float testDuration)
{
using namespace std;
++testFinishedCount;
strcpy(lastFinishedSuite, test.suiteName);
strcpy(lastFinishedTest, test.testName);
lastFinishedTestTime = testDuration;
}
virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed)
{
summaryTotalTestCount = totalTestCount;
summaryFailedTestCount = failedTestCount;
summaryFailureCount = failureCount;
summarySecondsElapsed = secondsElapsed;
}
int testRunCount;
char lastStartedSuite[kMaxStringLength];
char lastStartedTest[kMaxStringLength];
int testFailedCount;
char lastFailedFile[kMaxStringLength];
int lastFailedLine;
char lastFailedSuite[kMaxStringLength];
char lastFailedTest[kMaxStringLength];
char lastFailedMessage[kMaxStringLength];
int testFinishedCount;
char lastFinishedSuite[kMaxStringLength];
char lastFinishedTest[kMaxStringLength];
float lastFinishedTestTime;
int summaryTotalTestCount;
int summaryFailedTestCount;
int summaryFailureCount;
float summarySecondsElapsed;
};
#endif
|