You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+26-22Lines changed: 26 additions & 22 deletions
Original file line number
Diff line number
Diff line change
@@ -101,19 +101,19 @@ $./junit-reducer --help
101
101
```
102
102
Flags:
103
103
-h, --help help for junit-reducer
104
-
--exclude string Pattern to exclude from input JUnit XML reports
105
-
--include string Pattern to find input JUnit XML reports (default "./**/*.xml")
106
-
--op-cases-time string Operation for test cases time. Options: "max", "mean", "median", "min", "mode" or "sum" (default "mean")
107
-
--op-suites-assertions string Operation for test suites assertions. Options: "max", "mean", "median", "min", "mode" or "sum" (default "mean")
108
-
--op-suites-errors string Operation for test suites errors. Options: "max", "mean", "median", "min", "mode" or "sum" (default "mean")
109
-
--op-suites-failed string Operation for test suites failed. Options: "max", "mean", "median", "min", "mode" or "sum" (default "mean")
110
-
--op-suites-skipped string Operation for test suites skipped. Options: "max", "mean", "median", "min", "mode" or "sum" (default "mean")
111
-
--op-suites-tests string Operation for test suites tests. Options: "max", "mean", "median", "min", "mode" or "sum" (default "mean")
112
-
--op-suites-time string Operation for test suites time. Options: "max", "mean", "median", "min", "mode" or "sum" (default "mean")
113
-
--output-path string Output path for synthetic JUnit XML reports (default "./output/")
114
-
--reduce-cases-by string Reduce test cases by name, classname, or file. Options: "classname", "file" or "name" (default "name")
115
-
--reduce-suites-by string Reduce test suites by name or filepath or both. Options: "filepath", "name" or "name+filepath" (default "name+filepath")
116
-
--rounding-mode string Rounding mode for counts that should be integers. Options: "ceil", "floor" or "round" (default "round")
104
+
--include string Glob pattern to find JUnit XML reports to reduce (default "./**/*.xml")
105
+
--output-path string Output path for the reduced JUnit XML reports (default "./output/")
106
+
--exclude string Glob pattern to omit from included JUnit XML reports
107
+
--op-cases-time string Reducer operation for test case time values. Options: "max", "mean", "median", "min", "mode" or "sum" (default "mean")
108
+
--op-suites-time string Reducer operation for test suite time values. Options: "max", "mean", "median", "min", "mode" or "sum" (default "mean")
109
+
--op-suites-assertions string Reducer operation for test suite assertion counts. Options: "max", "mean", "median", "min", "mode" or "sum" (default "mean")
110
+
--op-suites-errors string Reducer operation for test suite error counts. Options: "max", "mean", "median", "min", "mode" or "sum" (default "mean")
111
+
--op-suites-failed string Reducer operation for test suite failure counts. Options: "max", "mean", "median", "min", "mode" or "sum" (default "mean")
112
+
--op-suites-skipped string Reducer operation for test suite skipped counts. Options: "max", "mean", "median", "min", "mode" or "sum" (default "mean")
113
+
--op-suites-tests string Reducer operation for test suite test counts. Options: "max", "mean", "median", "min", "mode" or "sum" (default "mean")
114
+
--reduce-cases-by string Key to group and reduce test cases by. Options: "classname", "file" or "name" (default "name")
115
+
--reduce-suites-by string Key to group and reduce test suites by. Options: "filepath", "name" or "name+filepath" (default "name+filepath")
116
+
--rounding-mode string Rounding mode for counts that should be integers in the final result. Options: "ceil", "floor" or "round" (default "round")
117
117
```
118
118
119
119
## Examples
@@ -128,6 +128,8 @@ junit-reducer \
128
128
129
129
### Reduce by name
130
130
131
+
Group test suites and cases by a specific attribute, to deduplicate the reports in the most appropriate way.
132
+
131
133
```bash
132
134
junit-reducer \
133
135
--include="test-reports/**/*" \
@@ -136,26 +138,28 @@ junit-reducer \
136
138
--reduce-cases-by="classname"# Grouping test cases by classname
137
139
```
138
140
139
-
### Reduce with non-average operations
141
+
### Reduce with other operations
140
142
141
143
```bash
142
144
junit-reducer \
143
145
--include="test-reports/**/*" \
144
146
--output-path="avg-reports/" \
145
-
--op-suites-skipped="min"\ # Keeps min of skips across suites of same type
146
-
--op-suites-failed="min"\ # Keeps min of failures across suites of same type
147
-
--op-suites-errors="min"\ # Keeps min of errors across suites of same type
148
-
--op-suites-tests="max"\ # Keeps max of tests across suites of same type
149
-
--op-suites-assertions="max"\ # Keeps max of assertions across suites of same type
150
-
--op-suites-time="mean"\ #Calculates mean of time across suites of same type
151
-
--op-cases-time="mean"#Calculates mean of time across cases of same type
147
+
--op-suites-skipped="min"\ # Keeps min of skips across suites of same group
148
+
--op-suites-failed="min"\ # Keeps min of failures across suites of same group
149
+
--op-suites-errors="min"\ # Keeps min of errors across suites of same group
150
+
--op-suites-tests="max"\ # Keeps max of tests across suites of same group
151
+
--op-suites-assertions="max"\ # Keeps max of assertions across suites of same group
152
+
--op-suites-time="mean"\ #Keeps mean of time across suites of same group
153
+
--op-cases-time="mean"#Keeps mean of time across cases of same group
152
154
```
153
155
154
156
### Rounding average counts
155
157
158
+
You can also specify how to treat counts after they have been reduced.
159
+
156
160
```bash
157
161
junit-reducer \
158
162
--include="test-reports/**/*" \
159
163
--output-path="avg-reports/" \
160
-
--rounding-mode="floor"# Specifies the rounding method
164
+
--rounding-mode="floor"# Specifies the rounding method for counts
Copy file name to clipboardExpand all lines: cmd/root.go
+13-13Lines changed: 13 additions & 13 deletions
Original file line number
Diff line number
Diff line change
@@ -149,17 +149,17 @@ func Execute() {
149
149
150
150
//nolint:errcheck // Ignore errors from MarkFlagRequired
151
151
funcinit() {
152
-
rootCmd.Flags().StringVar(&include, "include", "./**/*.xml", "Pattern to find input JUnit XML reports")
153
-
rootCmd.Flags().StringVar(&outputPath, "output-path", "./output/", "Output path for synthetic JUnit XML reports")
154
-
rootCmd.Flags().StringVar(&exclude, "exclude", "", "Pattern to exclude from input JUnit XML reports")
155
-
rootCmd.Flags().StringVar(&reduceTestSuitesByString, "reduce-suites-by", enums.TestSuiteFieldKeys[enums.TestSuiteFieldNameFilepath], fmt.Sprintf("Reduce test suites by name or filepath or both. Options: %s", joinOptionsString(enums.GetTestSuiteFields())))
156
-
rootCmd.Flags().StringVar(&reduceTestCasesByString, "reduce-cases-by", enums.TestCaseFieldKeys[enums.TestCaseFieldName], fmt.Sprintf("Reduce test cases by name, classname, or file. Options: %s", joinOptionsString(enums.GetTestCaseFields())))
157
-
rootCmd.Flags().StringVar(&operationTestSuitesSkippedString, "op-suites-skipped", enums.AggregateOperationKeys[enums.AggregateOperationMean], fmt.Sprintf("Operation for test suites skipped. Options: %s", joinOptionsString(enums.GetAggregateOperations())))
158
-
rootCmd.Flags().StringVar(&operationTestSuitesFailedString, "op-suites-failed", enums.AggregateOperationKeys[enums.AggregateOperationMean], fmt.Sprintf("Operation for test suites failed. Options: %s", joinOptionsString(enums.GetAggregateOperations())))
159
-
rootCmd.Flags().StringVar(&operationTestSuitesErrorsString, "op-suites-errors", enums.AggregateOperationKeys[enums.AggregateOperationMean], fmt.Sprintf("Operation for test suites errors. Options: %s", joinOptionsString(enums.GetAggregateOperations())))
160
-
rootCmd.Flags().StringVar(&operationTestSuitesTestsString, "op-suites-tests", enums.AggregateOperationKeys[enums.AggregateOperationMean], fmt.Sprintf("Operation for test suites tests. Options: %s", joinOptionsString(enums.GetAggregateOperations())))
161
-
rootCmd.Flags().StringVar(&operationTestSuitesAssertionsString, "op-suites-assertions", enums.AggregateOperationKeys[enums.AggregateOperationMean], fmt.Sprintf("Operation for test suites assertions. Options: %s", joinOptionsString(enums.GetAggregateOperations())))
162
-
rootCmd.Flags().StringVar(&operationTestSuitesTimeString, "op-suites-time", enums.AggregateOperationKeys[enums.AggregateOperationMean], fmt.Sprintf("Operation for test suites time. Options: %s", joinOptionsString(enums.GetAggregateOperations())))
163
-
rootCmd.Flags().StringVar(&operationTestCasesTimeString, "op-cases-time", enums.AggregateOperationKeys[enums.AggregateOperationMean], fmt.Sprintf("Operation for test cases time. Options: %s", joinOptionsString(enums.GetAggregateOperations())))
164
-
rootCmd.Flags().StringVar(&roundingModeString, "rounding-mode", enums.RoundingModeKeys[enums.RoundingModeRound], fmt.Sprintf("Rounding mode for counts that should be integers. Options: %s", joinOptionsString(enums.GetRoundingModes())))
152
+
rootCmd.Flags().StringVar(&include, "include", "./**/*.xml", "Glob pattern to find JUnit XML reports to reduce")
153
+
rootCmd.Flags().StringVar(&outputPath, "output-path", "./output/", "Output path for the reduced JUnit XML reports")
154
+
rootCmd.Flags().StringVar(&exclude, "exclude", "", "Glob pattern to omit from included JUnit XML reports")
155
+
rootCmd.Flags().StringVar(&reduceTestSuitesByString, "reduce-suites-by", enums.TestSuiteFieldKeys[enums.TestSuiteFieldNameFilepath], fmt.Sprintf("Key to group and reduce test suites by. Options: %s", joinOptionsString(enums.GetTestSuiteFields())))
156
+
rootCmd.Flags().StringVar(&reduceTestCasesByString, "reduce-cases-by", enums.TestCaseFieldKeys[enums.TestCaseFieldName], fmt.Sprintf("Key to group and reduce test cases by. Options: %s", joinOptionsString(enums.GetTestCaseFields())))
157
+
rootCmd.Flags().StringVar(&operationTestSuitesSkippedString, "op-suites-skipped", enums.AggregateOperationKeys[enums.AggregateOperationMean], fmt.Sprintf("Reducer operation for test suite skipped counts. Options: %s", joinOptionsString(enums.GetAggregateOperations())))
158
+
rootCmd.Flags().StringVar(&operationTestSuitesFailedString, "op-suites-failed", enums.AggregateOperationKeys[enums.AggregateOperationMean], fmt.Sprintf("Reducer operation for test suite failure counts. Options: %s", joinOptionsString(enums.GetAggregateOperations())))
159
+
rootCmd.Flags().StringVar(&operationTestSuitesErrorsString, "op-suites-errors", enums.AggregateOperationKeys[enums.AggregateOperationMean], fmt.Sprintf("Reducer operation for test suite error counts. Options: %s", joinOptionsString(enums.GetAggregateOperations())))
160
+
rootCmd.Flags().StringVar(&operationTestSuitesTestsString, "op-suites-tests", enums.AggregateOperationKeys[enums.AggregateOperationMean], fmt.Sprintf("Reducer operation for test suite test counts. Options: %s", joinOptionsString(enums.GetAggregateOperations())))
161
+
rootCmd.Flags().StringVar(&operationTestSuitesAssertionsString, "op-suites-assertions", enums.AggregateOperationKeys[enums.AggregateOperationMean], fmt.Sprintf("Reducer operation for test suite assertion counts. Options: %s", joinOptionsString(enums.GetAggregateOperations())))
162
+
rootCmd.Flags().StringVar(&operationTestSuitesTimeString, "op-suites-time", enums.AggregateOperationKeys[enums.AggregateOperationMean], fmt.Sprintf("Reducer operation for test suite time values. Options: %s", joinOptionsString(enums.GetAggregateOperations())))
163
+
rootCmd.Flags().StringVar(&operationTestCasesTimeString, "op-cases-time", enums.AggregateOperationKeys[enums.AggregateOperationMean], fmt.Sprintf("Reducer operation for test case time values. Options: %s", joinOptionsString(enums.GetAggregateOperations())))
164
+
rootCmd.Flags().StringVar(&roundingModeString, "rounding-mode", enums.RoundingModeKeys[enums.RoundingModeRound], fmt.Sprintf("Rounding mode for counts that should be integers in the final result. Options: %s", joinOptionsString(enums.GetRoundingModes())))
0 commit comments