@@ -83,19 +83,51 @@ var ReportCmd = &cobra.Command{
8383 fmt .Println ("Test results mapped to code owners successfully." )
8484 }
8585
86- // Exclude outputs and package outputs from the aggregated report of all tests
87- for i := range aggregatedReport .Results {
88- aggregatedReport .Results [i ].Outputs = nil
89- aggregatedReport .Results [i ].PackageOutputs = nil
90- }
91-
9286 // Create output directory if it doesn't exist
9387 outputDir := reportOutputPath
9488 if err := fs .MkdirAll (outputDir , 0755 ); err != nil {
9589 return fmt .Errorf ("error creating output directory: %w" , err )
9690 }
9791
98- // Save the aggregated report (all tests)
92+ // Filter failed tests (PassRatio < maxPassRatio and not skipped)
93+ s = spinner .New (spinner .CharSets [11 ], 100 * time .Millisecond )
94+ s .Suffix = " Filtering failed tests..."
95+ s .Start ()
96+
97+ failedTests := reports .FilterTests (aggregatedReport .Results , func (tr reports.TestResult ) bool {
98+ return ! tr .Skipped && tr .PassRatio < reportMaxPassRatio
99+ })
100+ s .Stop ()
101+ fmt .Println ("Failed tests filtered successfully." )
102+
103+ // Create a new report for failed tests with logs
104+ failedReportWithLogs := & reports.TestReport {
105+ GoProject : aggregatedReport .GoProject ,
106+ TestRunCount : aggregatedReport .TestRunCount ,
107+ RaceDetection : aggregatedReport .RaceDetection ,
108+ ExcludedTests : aggregatedReport .ExcludedTests ,
109+ SelectedTests : aggregatedReport .SelectedTests ,
110+ Results : failedTests ,
111+ }
112+
113+ // Save the failed tests report with logs
114+ failedTestsReportWithLogsPath := filepath .Join (outputDir , "failed-test-results-with-logs.json" )
115+ if err := reports .SaveReport (fs , failedTestsReportWithLogsPath , * failedReportWithLogs ); err != nil {
116+ return fmt .Errorf ("error saving failed tests report with logs: %w" , err )
117+ }
118+ fmt .Printf ("Failed tests report with logs saved to %s\n " , failedTestsReportWithLogsPath )
119+
120+ // Set Outputs and PackageOutputs to nil for reports without logs
121+ for i := range aggregatedReport .Results {
122+ aggregatedReport .Results [i ].Outputs = nil
123+ aggregatedReport .Results [i ].PackageOutputs = nil
124+ }
125+ for i := range failedTests {
126+ failedTests [i ].Outputs = nil
127+ failedTests [i ].PackageOutputs = nil
128+ }
129+
130+ // Save the aggregated report (all tests) without logs
99131 allTestsReportPath := filepath .Join (outputDir , "all-test-results.json" )
100132 if err := reports .SaveReport (fs , allTestsReportPath , * aggregatedReport ); err != nil {
101133 return fmt .Errorf ("error saving all tests report: %w" , err )
@@ -168,18 +200,7 @@ var ReportCmd = &cobra.Command{
168200 fmt .Println ("PR comment markdown generated successfully." )
169201 }
170202
171- // Filter failed tests (PassRatio < maxPassRatio and not skipped)
172- s = spinner .New (spinner .CharSets [11 ], 100 * time .Millisecond )
173- s .Suffix = " Filtering failed tests..."
174- s .Start ()
175-
176- failedTests := reports .FilterTests (aggregatedReport .Results , func (tr reports.TestResult ) bool {
177- return ! tr .Skipped && tr .PassRatio < reportMaxPassRatio
178- })
179- s .Stop ()
180- fmt .Println ("Failed tests filtered successfully." )
181-
182- // Create a new report for failed tests
203+ // Create a new report for failed tests without logs
183204 failedReportNoLogs := & reports.TestReport {
184205 GoProject : aggregatedReport .GoProject ,
185206 TestRunCount : aggregatedReport .TestRunCount ,
@@ -189,37 +210,13 @@ var ReportCmd = &cobra.Command{
189210 Results : failedTests ,
190211 }
191212
192- // Save the failed tests report with no logs
213+ // Save the failed tests report without logs
193214 failedTestsReportNoLogsPath := filepath .Join (outputDir , "failed-test-results.json" )
194215 if err := reports .SaveReport (fs , failedTestsReportNoLogsPath , * failedReportNoLogs ); err != nil {
195- return fmt .Errorf ("error saving failed tests report: %w" , err )
216+ return fmt .Errorf ("error saving failed tests report without logs : %w" , err )
196217 }
197218 fmt .Printf ("Failed tests report without logs saved to %s\n " , failedTestsReportNoLogsPath )
198219
199- // Retrieve outputs and package outputs for failed tests
200- for i := range failedTests {
201- // Retrieve outputs and package outputs from original reports
202- failedTests [i ].Outputs = getOriginalOutputs (testReports , failedTests [i ].TestName , failedTests [i ].TestPackage )
203- failedTests [i ].PackageOutputs = getOriginalPackageOutputs (testReports , failedTests [i ].TestName , failedTests [i ].TestPackage )
204- }
205-
206- // Create a new report for failed tests
207- failedReportWithLogs := & reports.TestReport {
208- GoProject : aggregatedReport .GoProject ,
209- TestRunCount : aggregatedReport .TestRunCount ,
210- RaceDetection : aggregatedReport .RaceDetection ,
211- ExcludedTests : aggregatedReport .ExcludedTests ,
212- SelectedTests : aggregatedReport .SelectedTests ,
213- Results : failedTests ,
214- }
215-
216- // Save the failed tests report
217- failedTestsReportWithLogsPath := filepath .Join (outputDir , "failed-test-results-with-logs.json" )
218- if err := reports .SaveReport (fs , failedTestsReportWithLogsPath , * failedReportWithLogs ); err != nil {
219- return fmt .Errorf ("error saving failed tests report: %w" , err )
220- }
221- fmt .Printf ("Failed tests report with logs saved to %s\n " , failedTestsReportWithLogsPath )
222-
223220 fmt .Printf ("Reports generated at: %s\n " , reportOutputPath )
224221
225222 return nil
@@ -288,26 +285,3 @@ func generateAllTestsSummaryJSON(report *reports.TestReport, outputPath string,
288285
289286 return nil
290287}
291-
292- // Helper functions to retrieve original outputs and package outputs
293- func getOriginalOutputs (reports []* reports.TestReport , testName , testPackage string ) []string {
294- for _ , report := range reports {
295- for _ , result := range report .Results {
296- if result .TestName == testName && result .TestPackage == testPackage {
297- return result .Outputs
298- }
299- }
300- }
301- return nil
302- }
303-
304- func getOriginalPackageOutputs (reports []* reports.TestReport , testName , testPackage string ) []string {
305- for _ , report := range reports {
306- for _ , result := range report .Results {
307- if result .TestName == testName && result .TestPackage == testPackage {
308- return result .PackageOutputs
309- }
310- }
311- }
312- return nil
313- }
0 commit comments