Skip to content

Commit 7a7fe74

Browse files
committed
- add the ability to ungroup test reports
- Relates to #1297
1 parent ee6b445 commit 7a7fe74

File tree

9 files changed

+90
-5
lines changed

9 files changed

+90
-5
lines changed

.github/workflows/build.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,16 @@ jobs:
5757
comment: true
5858
annotate_only: ${{ github.event_name == 'workflow_dispatch' }}
5959

60+
- name: Test Ungrouped test import
61+
uses: ./
62+
with:
63+
check_name: Example Ungrouped Test Report
64+
report_paths: test_results/multiple/*.xml
65+
include_passed: true
66+
detailed_summary: false
67+
group_reports: false
68+
comment: true
69+
6070
- name: Test JUnit flaky test import
6171
uses: ./
6272
with:

action.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ inputs:
1515
description: 'Xml report paths in glob format'
1616
required: false
1717
default: '**/junit-reports/TEST-*.xml'
18+
group_reports:
19+
description: 'Defines if reports are grouped into a combined test result. This '
20+
required: false
21+
default: 'true'
1822
test_files_prefix:
1923
description: 'Prefix to add to test file paths from report files when annotating'
2024
required: false

dist/index.js

Lines changed: 26 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/main.ts

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export async function run(): Promise<void> {
1717
return
1818
}
1919

20+
const groupReports = core.getInput('group_reports') === 'true'
2021
const annotateOnly = core.getInput('annotate_only') === 'true'
2122
const updateCheck = core.getInput('update_check') === 'true'
2223
const checkAnnotations = core.getInput('check_annotations') === 'true'
@@ -103,7 +104,26 @@ export async function run(): Promise<void> {
103104
mergedResult.failed += testResult.failed
104105
mergedResult.passed += testResult.passed
105106
mergedResult.retried += testResult.retried
106-
testResults.push(testResult)
107+
108+
if (groupReports) {
109+
testResults.push(testResult)
110+
} else {
111+
for (const actualTestResult of testResult.testResults) {
112+
const failedCount = actualTestResult.annotations.filter(a => a.annotation_level === 'failure').length
113+
testResults.push({
114+
checkName: actualTestResult.name,
115+
summary: testResult.summary,
116+
totalCount: actualTestResult.totalCount,
117+
skipped: actualTestResult.skippedCount,
118+
failed: failedCount,
119+
passed: actualTestResult.totalCount - failedCount - actualTestResult.skippedCount,
120+
retried: actualTestResult.retriedCount,
121+
foundFiles: 1,
122+
globalAnnotations: actualTestResult.annotations,
123+
testResults: actualTestResult.testResults
124+
})
125+
}
126+
}
107127
}
108128

109129
core.setOutput('total', mergedResult.totalCount)

src/testParser.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ export async function parseFile(
222222
return undefined
223223
}
224224

225-
return await parseSuite(
225+
const testResult = await parseSuite(
226226
testsuite,
227227
suiteRegex, // no-op
228228
'',
@@ -240,6 +240,12 @@ export async function parseFile(
240240
globalAnnotations,
241241
resolveIgnoreClassname
242242
)
243+
244+
if (testResult !== undefined && !testResult.name) {
245+
testResult.name = pathHelper.basename(file)
246+
}
247+
248+
return testResult
243249
}
244250

245251
function templateVar(varName: string): string {

test_results/multiple/test_10.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<testsuites failures="0" tests="8" time="1967986371">
2+
<testsuite>
3+
<testcase name="Command Test: apt-get upgrade" time="999638317"></testcase>
4+
<testcase name="File Existence Test: /home/app/app" time="0"></testcase>
5+
<testcase name="Metadata Test" time="0"></testcase>
6+
</testsuite>
7+
</testsuites>

test_results/multiple/test_11.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<testsuites failures="0" tests="8" time="1967986371">
2+
<testsuite name = "test">
3+
<testcase name="Command Test: apt-get upgrade" time="999638317"></testcase>
4+
<testcase name="File Existence Test: /home/app/app" time="0"></testcase>
5+
<testcase name="Metadata Test" time="0"></testcase>
6+
</testsuite>
7+
</testsuites>

test_results/multiple/test_12.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<testsuites failures="0" tests="8" time="1967986371">
2+
<testsuite>
3+
<testcase name="Command Test: apt-get upgrade" time="999638317"></testcase>
4+
<testcase name="File Existence Test: /home/app/app" time="0"></testcase>
5+
<testcase name="Metadata Test" time="0"></testcase>
6+
</testsuite>
7+
</testsuites>

0 commit comments

Comments
 (0)