@@ -9,10 +9,13 @@ import type {
9
9
import { reportTestsErrors } from './reportTestsErrors.js' ;
10
10
import { reportTestFileErrors } from './reportTestFileErrors.js' ;
11
11
12
+ import { TestRunnerLogger } from '../logger/TestRunnerLogger.js' ;
12
13
import { reportBrowserLogs } from './reportBrowserLogs.js' ;
13
14
14
15
interface Options {
15
16
flatten ?: boolean ;
17
+ reportTestLogs ?: boolean ;
18
+ reportTestErrors ?: boolean ;
16
19
}
17
20
18
21
const color =
@@ -26,10 +29,12 @@ const dim = color([2, 0]);
26
29
27
30
/** Test reporter that summarizes all test for a given run */
28
31
export function summaryReporter ( opts : Options ) : Reporter {
29
- const { flatten = false } = opts ?? { } ;
32
+ const { flatten = false , reportTestLogs = true , reportTestErrors = false } = opts ?? { } ;
30
33
let args : ReporterArgs ;
31
34
let favoriteBrowser : string ;
32
35
36
+ const testLogger = new TestRunnerLogger ( ) ;
37
+
33
38
function log (
34
39
logger : Logger ,
35
40
name : string ,
@@ -80,7 +85,6 @@ export function summaryReporter(opts: Options): Reporter {
80
85
logResults ( logger , suite , pref , browser ) ;
81
86
}
82
87
83
- let cachedLogger : Logger ;
84
88
return {
85
89
start ( _args ) {
86
90
args = _args ;
@@ -92,26 +96,27 @@ export function summaryReporter(opts: Options): Reporter {
92
96
} ,
93
97
94
98
reportTestFileResults ( { logger, sessionsForTestFile } ) {
95
- cachedLogger = logger ;
96
99
for ( const session of sessionsForTestFile ) {
97
100
logResults ( logger , session . testResults , '' , session . browser ) ;
98
101
logger . log ( '' ) ;
99
102
}
100
- reportBrowserLogs ( logger , sessionsForTestFile ) ;
103
+ if ( reportTestLogs ) reportBrowserLogs ( logger , sessionsForTestFile ) ;
101
104
} ,
102
105
103
106
onTestRunFinished ( { sessions } ) {
104
- const failedSessions = sessions . filter ( s => ! s . passed ) ;
105
- if ( failedSessions . length > 0 ) {
106
- cachedLogger . log ( '\n\nErrors Reported in Tests:\n\n' ) ;
107
- reportTestsErrors ( cachedLogger , args . browserNames , favoriteBrowser , failedSessions ) ;
108
- reportTestFileErrors (
109
- cachedLogger ,
110
- args . browserNames ,
111
- favoriteBrowser ,
112
- failedSessions ,
113
- true ,
114
- ) ;
107
+ if ( reportTestErrors ) {
108
+ const failedSessions = sessions . filter ( s => ! s . passed ) ;
109
+ if ( failedSessions . length > 0 ) {
110
+ testLogger . log ( '\n\nErrors Reported in Tests:\n\n' ) ;
111
+ reportTestsErrors ( testLogger , args . browserNames , favoriteBrowser , failedSessions ) ;
112
+ reportTestFileErrors (
113
+ testLogger ,
114
+ args . browserNames ,
115
+ favoriteBrowser ,
116
+ failedSessions ,
117
+ true ,
118
+ ) ;
119
+ }
115
120
}
116
121
} ,
117
122
} ;
0 commit comments