@@ -13,6 +13,7 @@ class Runner {
1313 testArguments = [ './...' ]
1414 omitUntestedPackages = false
1515 omitPie = false
16+ fromJSONFile : string | null = null
1617
1718 constructor ( ) {
1819 this . getInputs ( )
@@ -24,24 +25,41 @@ class Runner {
2425 async run ( ) {
2526 const moduleName = await this . findModuleName ( )
2627
27- const { retCode, stdout, stderr } = await this . goTest ( )
28- if ( retCode > 0 ) {
29- core . error ( `\`go test\` returned nonzero exit code: ${ retCode } ` )
30- }
31-
32- const testEvents = parseTestEvents ( stdout )
33-
34- const renderer = new Renderer (
35- moduleName ,
36- testEvents ,
37- stderr ,
38- this . omitUntestedPackages ,
39- this . omitPie
40- )
41-
42- await renderer . writeSummary ( )
28+ if ( this . fromJSONFile ) {
29+ const stdout = await readFile ( this . fromJSONFile )
30+ const testEvents = parseTestEvents ( stdout . toString ( ) )
31+
32+ const renderer = new Renderer (
33+ moduleName ,
34+ testEvents ,
35+ '' ,
36+ this . omitUntestedPackages ,
37+ this . omitPie
38+ )
39+
40+ await renderer . writeSummary ( )
41+
42+ process . exit ( 0 )
43+ } else {
44+ const { retCode, stdout, stderr } = await this . goTest ( )
45+ if ( retCode > 0 ) {
46+ core . error ( `\`go test\` returned nonzero exit code: ${ retCode } ` )
47+ }
4348
44- process . exit ( retCode )
49+ const testEvents = parseTestEvents ( stdout )
50+
51+ const renderer = new Renderer (
52+ moduleName ,
53+ testEvents ,
54+ stderr ,
55+ this . omitUntestedPackages ,
56+ this . omitPie
57+ )
58+
59+ await renderer . writeSummary ( )
60+
61+ process . exit ( retCode )
62+ }
4563 }
4664
4765 /**
@@ -125,6 +143,11 @@ class Runner {
125143 if ( omitPie ) {
126144 this . omitPie = core . getBooleanInput ( 'omitPie' )
127145 }
146+
147+ const fromJSONFile = core . getInput ( 'fromJSONFile' )
148+ if ( fromJSONFile ) {
149+ this . fromJSONFile = fromJSONFile
150+ }
128151 }
129152}
130153
0 commit comments