Skip to content

Commit dde3629

Browse files
committed
Refactor test result presentation and add short results table generation
1 parent d551457 commit dde3629

File tree

2 files changed

+59
-19
lines changed

2 files changed

+59
-19
lines changed

tools/flakeguard/cmd/run.go

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -174,12 +174,6 @@ var RunTestsCmd = &cobra.Command{
174174
flushSummaryAndExit(ErrorExitCode)
175175
}
176176

177-
// Accumulate main summary into summaryBuffer
178-
fmt.Fprint(&summaryBuffer, "\nFlakeguard Main Summary:\n")
179-
fmt.Fprintf(&summaryBuffer, "-------------------------\n")
180-
reports.RenderTestReport(&summaryBuffer, mainReport, false, false)
181-
fmt.Fprintln(&summaryBuffer)
182-
183177
// Rerun failed tests
184178
if rerunFailedCount > 0 {
185179
failedTests := reports.FilterTests(mainReport.Results, func(tr reports.TestResult) bool {
@@ -210,11 +204,6 @@ var RunTestsCmd = &cobra.Command{
210204
flushSummaryAndExit(ErrorExitCode)
211205
}
212206

213-
fmt.Fprint(&summaryBuffer, "\nAll Tests That Were Rerun:\n")
214-
fmt.Fprintf(&summaryBuffer, "---------------------------\n")
215-
reports.PrintTestResultsTable(&summaryBuffer, rerunReport.Results, false, false)
216-
fmt.Fprintln(&summaryBuffer)
217-
218207
// Save the rerun test report to file
219208
if rerunResultsPath != "" && len(rerunResults) > 0 {
220209
if err := reports.SaveTestResultsToFile(rerunResults, rerunResultsPath); err != nil {
@@ -230,13 +219,11 @@ var RunTestsCmd = &cobra.Command{
230219
})
231220

232221
if len(failedAfterRerun) > 0 {
233-
fmt.Fprint(&summaryBuffer, "\nTests That Have 0 Success Runs:\n")
234-
fmt.Fprintf(&summaryBuffer, "--------------------------------\n")
235-
reports.PrintTestResultsTable(&summaryBuffer, failedAfterRerun, false, false)
222+
fmt.Fprint(&summaryBuffer, "\nTests That Have 0 Success Rate After Reruns:\n\n")
223+
reports.PrintTestResultsTable(&summaryBuffer, failedAfterRerun, false, false, true)
236224
fmt.Fprintln(&summaryBuffer)
237225

238-
fmt.Fprint(&summaryBuffer, "\nLogs From All Reruns:\n")
239-
fmt.Fprintf(&summaryBuffer, "----------------------\n")
226+
fmt.Fprint(&summaryBuffer, "\nLogs:\n\n")
240227
err := rerunReport.PrintGotestsumOutput(&summaryBuffer, "pkgname")
241228
if err != nil {
242229
log.Error().Err(err).Msg("Error printing gotestsum output")

tools/flakeguard/reports/presentation.go

Lines changed: 56 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,52 @@ func generateTestResultsTable(
7575
return table
7676
}
7777

78+
func generateShortTestResultsTable(
79+
results []TestResult,
80+
markdown bool,
81+
filter func(TestResult) bool,
82+
) [][]string {
83+
p := message.NewPrinter(language.English)
84+
85+
// Define the columns you want
86+
headers := []string{"Name", "Path", "Runs", "Failures", "Code Owners"}
87+
88+
// Optionally format the headers for Markdown
89+
if markdown {
90+
for i, header := range headers {
91+
headers[i] = fmt.Sprintf("**%s**", header)
92+
}
93+
}
94+
95+
// Initialize table with headers
96+
table := [][]string{headers}
97+
98+
// Fill the table rows
99+
for _, r := range results {
100+
if !filter(r) {
101+
continue
102+
}
103+
104+
// Format the Code Owners
105+
owners := "Unknown"
106+
if len(r.CodeOwners) > 0 {
107+
owners = strings.Join(r.CodeOwners, ", ")
108+
}
109+
110+
row := []string{
111+
r.TestName,
112+
r.TestPath,
113+
p.Sprintf("%d", r.Runs),
114+
p.Sprintf("%d", r.Failures),
115+
owners,
116+
}
117+
118+
table = append(table, row)
119+
}
120+
121+
return table
122+
}
123+
78124
// GenerateFlakyTestsTable returns a table with only the flaky tests.
79125
func GenerateFlakyTestsTable(
80126
testReport TestReport,
@@ -90,10 +136,17 @@ func PrintTestResultsTable(
90136
w io.Writer,
91137
results []TestResult,
92138
markdown bool,
93-
collapsible bool) {
94-
table := generateTestResultsTable(results, markdown, func(result TestResult) bool {
139+
collapsible bool,
140+
shortTable bool) {
141+
filter := func(result TestResult) bool {
95142
return true // Include all tests
96-
})
143+
}
144+
var table [][]string
145+
if shortTable {
146+
table = generateShortTestResultsTable(results, markdown, filter)
147+
} else {
148+
table = generateTestResultsTable(results, markdown, filter)
149+
}
97150
printTable(w, table, collapsible)
98151
}
99152

0 commit comments

Comments
 (0)