@@ -9,10 +9,13 @@ import type {
99import { reportTestsErrors } from './reportTestsErrors.js' ;
1010import { reportTestFileErrors } from './reportTestFileErrors.js' ;
1111
12+ import { TestRunnerLogger } from '../logger/TestRunnerLogger.js' ;
1213import { reportBrowserLogs } from './reportBrowserLogs.js' ;
1314
1415interface Options {
1516 flatten ?: boolean ;
17+ reportTestLogs ?: boolean ;
18+ reportTestErrors ?: boolean ;
1619}
1720
1821const color =
@@ -26,10 +29,12 @@ const dim = color([2, 0]);
2629
2730/** Test reporter that summarizes all test for a given run */
2831export function summaryReporter ( opts : Options ) : Reporter {
29- const { flatten = false } = opts ?? { } ;
32+ const { flatten = false , reportTestLogs = true , reportTestErrors = true } = opts ?? { } ;
3033 let args : ReporterArgs ;
3134 let favoriteBrowser : string ;
3235
36+ const testLogger = new TestRunnerLogger ( ) ;
37+
3338 function log (
3439 logger : Logger ,
3540 name : string ,
@@ -80,7 +85,6 @@ export function summaryReporter(opts: Options): Reporter {
8085 logResults ( logger , suite , pref , browser ) ;
8186 }
8287
83- let cachedLogger : Logger ;
8488 return {
8589 start ( _args ) {
8690 args = _args ;
@@ -92,26 +96,27 @@ export function summaryReporter(opts: Options): Reporter {
9296 } ,
9397
9498 reportTestFileResults ( { logger, sessionsForTestFile } ) {
95- cachedLogger = logger ;
9699 for ( const session of sessionsForTestFile ) {
97100 logResults ( logger , session . testResults , '' , session . browser ) ;
98101 logger . log ( '' ) ;
99102 }
100- reportBrowserLogs ( logger , sessionsForTestFile ) ;
103+ if ( reportTestLogs ) reportBrowserLogs ( logger , sessionsForTestFile ) ;
101104 } ,
102105
103106 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+ }
115120 }
116121 } ,
117122 } ;
0 commit comments