mirror of
https://github.com/dorny/test-reporter.git
synced 2026-02-01 19:05:23 -08:00
Compare commits
10 Commits
esbuild
...
bugfix/142
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6adcc0c72a | ||
|
|
2312e637f3 | ||
|
|
a6b3e93884 | ||
|
|
223c6cd55b | ||
|
|
b522d19cac | ||
|
|
d56352b96c | ||
|
|
9934a5fbd4 | ||
|
|
0f25185fa5 | ||
|
|
fb07f1b2a5 | ||
|
|
364887ed35 |
@@ -1,7 +1,7 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/dart-json.json|1 ✅|4 ❌|1 ⚪|4s|
|
||||
|[fixtures/dart-json.json](#user-content-r0)|1 ✅|4 ❌|1 ⚪|4s|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/dart-json.json</a>
|
||||
**6** tests were completed in **4s** with **1** passed, **4** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/dotnet-nunit.xml|3 ✅|5 ❌|1 ⚪|230ms|
|
||||
|[fixtures/dotnet-nunit.xml](#user-content-r0)|3 ✅|5 ❌|1 ⚪|230ms|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/dotnet-nunit.xml</a>
|
||||
**9** tests were completed in **230ms** with **3** passed, **5** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|
||||
28
__tests__/__outputs__/dotnet-trx-only-failed.md
Normal file
28
__tests__/__outputs__/dotnet-trx-only-failed.md
Normal file
@@ -0,0 +1,28 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[fixtures/dotnet-trx.trx](#user-content-r0)|5 ✅|5 ❌|1 ⚪|1s|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/dotnet-trx.trx</a>
|
||||
**11** tests were completed in **1s** with **5** passed, **5** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|[DotnetTests.XUnitTests.CalculatorTests](#user-content-r0s0)|5 ✅|5 ❌|1 ⚪|118ms|
|
||||
### ❌ <a id="user-content-r0s0" href="#user-content-r0s0">DotnetTests.XUnitTests.CalculatorTests</a>
|
||||
```
|
||||
❌ Exception_In_TargetTest
|
||||
System.DivideByZeroException : Attempted to divide by zero.
|
||||
❌ Exception_In_Test
|
||||
System.Exception : Test
|
||||
❌ Failing_Test
|
||||
Assert.Equal() Failure
|
||||
Expected: 3
|
||||
Actual: 2
|
||||
❌ Is_Even_Number(i: 3)
|
||||
Assert.True() Failure
|
||||
Expected: True
|
||||
Actual: False
|
||||
❌ Should be even number(i: 3)
|
||||
Assert.True() Failure
|
||||
Expected: True
|
||||
Actual: False
|
||||
```
|
||||
@@ -1,7 +1,7 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/dotnet-trx.trx|5 ✅|5 ❌|1 ⚪|1s|
|
||||
|[fixtures/dotnet-trx.trx](#user-content-r0)|5 ✅|5 ❌|1 ⚪|1s|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/dotnet-trx.trx</a>
|
||||
**11** tests were completed in **1s** with **5** passed, **5** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/external/FluentValidation.Tests.trx|803 ✅||1 ⚪|4s|
|
||||
|[fixtures/external/FluentValidation.Tests.trx](#user-content-r0)|803 ✅||1 ⚪|4s|
|
||||
## ✅ <a id="user-content-r0" href="#user-content-r0">fixtures/external/FluentValidation.Tests.trx</a>
|
||||
**804** tests were completed in **4s** with **803** passed, **0** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/golang-json.json|5 ✅|6 ❌|1 ⚪|6s|
|
||||
|[fixtures/golang-json.json](#user-content-r0)|5 ✅|6 ❌|1 ⚪|6s|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/golang-json.json</a>
|
||||
**12** tests were completed in **6s** with **5** passed, **6** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/jest-junit-eslint.xml|1 ✅|||0ms|
|
||||
|[fixtures/jest-junit-eslint.xml](#user-content-r0)|1 ✅|||0ms|
|
||||
## ✅ <a id="user-content-r0" href="#user-content-r0">fixtures/jest-junit-eslint.xml</a>
|
||||
**1** tests were completed in **0ms** with **1** passed, **0** failed and **0** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/jest-junit.xml|1 ✅|4 ❌|1 ⚪|1s|
|
||||
|[fixtures/jest-junit.xml](#user-content-r0)|1 ✅|4 ❌|1 ⚪|1s|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/jest-junit.xml</a>
|
||||
**6** tests were completed in **1s** with **1** passed, **4** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/external/jest/jest-react-component-test-results.xml|1 ✅|||1000ms|
|
||||
|[fixtures/external/jest/jest-react-component-test-results.xml](#user-content-r0)|1 ✅|||1000ms|
|
||||
## ✅ <a id="user-content-r0" href="#user-content-r0">fixtures/external/jest/jest-react-component-test-results.xml</a>
|
||||
**1** tests were completed in **1000ms** with **1** passed, **0** failed and **0** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/external/jest/jest-test-results.xml|4207 ✅|2 ❌|30 ⚪|166s|
|
||||
|[fixtures/external/jest/jest-test-results.xml](#user-content-r0)|4207 ✅|2 ❌|30 ⚪|166s|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/external/jest/jest-test-results.xml</a>
|
||||
**4239** tests were completed in **166s** with **4207** passed, **2** failed and **30** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/junit-with-message.xml||1 ❌||1ms|
|
||||
|[fixtures/junit-with-message.xml](#user-content-r0)||1 ❌||1ms|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/junit-with-message.xml</a>
|
||||
**1** tests were completed in **1ms** with **0** passed, **1** failed and **0** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/mocha-json.json|1 ✅|4 ❌|1 ⚪|12ms|
|
||||
|[fixtures/mocha-json.json](#user-content-r0)|1 ✅|4 ❌|1 ⚪|12ms|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/mocha-json.json</a>
|
||||
**6** tests were completed in **12ms** with **1** passed, **4** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/external/mocha/mocha-test-results.json|833 ✅||6 ⚪|6s|
|
||||
|[fixtures/external/mocha/mocha-test-results.json](#user-content-r0)|833 ✅||6 ⚪|6s|
|
||||
## ✅ <a id="user-content-r0" href="#user-content-r0">fixtures/external/mocha/mocha-test-results.json</a>
|
||||
**839** tests were completed in **6s** with **833** passed, **0** failed and **6** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/external/flutter/provider-test-results.json|268 ✅|1 ❌||0ms|
|
||||
|[fixtures/external/flutter/provider-test-results.json](#user-content-r0)|268 ✅|1 ❌||0ms|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/external/flutter/provider-test-results.json</a>
|
||||
**269** tests were completed in **0ms** with **268** passed, **1** failed and **0** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/external/java/TEST-org.apache.pulsar.AddMissingPatchVersionTest.xml||1 ❌|1 ⚪|116ms|
|
||||
|[fixtures/external/java/TEST-org.apache.pulsar.AddMissingPatchVersionTest.xml](#user-content-r0)||1 ❌|1 ⚪|116ms|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/external/java/TEST-org.apache.pulsar.AddMissingPatchVersionTest.xml</a>
|
||||
**2** tests were completed in **116ms** with **0** passed, **1** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/external/java/pulsar-test-report.xml|793 ✅|1 ❌|14 ⚪|2127s|
|
||||
|[fixtures/external/java/pulsar-test-report.xml](#user-content-r0)|793 ✅|1 ❌|14 ⚪|2127s|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/external/java/pulsar-test-report.xml</a>
|
||||
**808** tests were completed in **2127s** with **793** passed, **1** failed and **14** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/rspec-json.json|1 ✅|1 ❌|1 ⚪|0ms|
|
||||
|[fixtures/rspec-json.json](#user-content-r0)|1 ✅|1 ❌|1 ⚪|0ms|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/rspec-json.json</a>
|
||||
**3** tests were completed in **0ms** with **1** passed, **1** failed and **1** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/external/SilentNotes.trx|67 ✅||12 ⚪|1s|
|
||||
|[fixtures/external/SilentNotes.trx](#user-content-r0)|67 ✅||12 ⚪|1s|
|
||||
## ✅ <a id="user-content-r0" href="#user-content-r0">fixtures/external/SilentNotes.trx</a>
|
||||
**79** tests were completed in **1s** with **67** passed, **0** failed and **12** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|fixtures/swift-xunit.xml|2 ✅|1 ❌||220ms|
|
||||
|[fixtures/swift-xunit.xml](#user-content-r0)|2 ✅|1 ❌||220ms|
|
||||
## ❌ <a id="user-content-r0" href="#user-content-r0">fixtures/swift-xunit.xml</a>
|
||||
**3** tests were completed in **220ms** with **2** passed, **1** failed and **0** skipped.
|
||||
|Test suite|Passed|Failed|Skipped|Time|
|
||||
|
||||
@@ -1,5 +1,134 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`dotnet-trx tests matches report snapshot (only failed tests) 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/dotnet-trx.trx",
|
||||
"suites": [
|
||||
TestSuiteResult {
|
||||
"groups": [
|
||||
TestGroupResult {
|
||||
"name": null,
|
||||
"tests": [
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Custom Name",
|
||||
"result": "success",
|
||||
"time": 0.1371,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "System.DivideByZeroException : Attempted to divide by zero.
|
||||
at DotnetTests.Unit.Calculator.Div(Int32 a, Int32 b) in C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\dotnet\\DotnetTests.Unit\\Calculator.cs:line 9
|
||||
at DotnetTests.XUnitTests.CalculatorTests.Exception_In_TargetTest() in C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\dotnet\\DotnetTests.XUnitTests\\CalculatorTests.cs:line 33",
|
||||
"line": 9,
|
||||
"message": "System.DivideByZeroException : Attempted to divide by zero.",
|
||||
"path": "DotnetTests.Unit/Calculator.cs",
|
||||
},
|
||||
"name": "Exception_In_TargetTest",
|
||||
"result": "failed",
|
||||
"time": 0.8377,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "System.Exception : Test
|
||||
at DotnetTests.XUnitTests.CalculatorTests.Exception_In_Test() in C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\dotnet\\DotnetTests.XUnitTests\\CalculatorTests.cs:line 39",
|
||||
"line": 39,
|
||||
"message": "System.Exception : Test",
|
||||
"path": "DotnetTests.XUnitTests/CalculatorTests.cs",
|
||||
},
|
||||
"name": "Exception_In_Test",
|
||||
"result": "failed",
|
||||
"time": 2.5175,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "Assert.Equal() Failure
|
||||
Expected: 3
|
||||
Actual: 2
|
||||
at DotnetTests.XUnitTests.CalculatorTests.Failing_Test() in C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\dotnet\\DotnetTests.XUnitTests\\CalculatorTests.cs:line 27",
|
||||
"line": 27,
|
||||
"message": "Assert.Equal() Failure
|
||||
Expected: 3
|
||||
Actual: 2",
|
||||
"path": "DotnetTests.XUnitTests/CalculatorTests.cs",
|
||||
},
|
||||
"name": "Failing_Test",
|
||||
"result": "failed",
|
||||
"time": 3.8697,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Is_Even_Number(i: 2)",
|
||||
"result": "success",
|
||||
"time": 0.0078,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "Assert.True() Failure
|
||||
Expected: True
|
||||
Actual: False
|
||||
at DotnetTests.XUnitTests.CalculatorTests.Is_Even_Number(Int32 i) in C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\dotnet\\DotnetTests.XUnitTests\\CalculatorTests.cs:line 59",
|
||||
"line": 59,
|
||||
"message": "Assert.True() Failure
|
||||
Expected: True
|
||||
Actual: False",
|
||||
"path": "DotnetTests.XUnitTests/CalculatorTests.cs",
|
||||
},
|
||||
"name": "Is_Even_Number(i: 3)",
|
||||
"result": "failed",
|
||||
"time": 0.41409999999999997,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Passing_Test",
|
||||
"result": "success",
|
||||
"time": 0.1365,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Should be even number(i: 2)",
|
||||
"result": "success",
|
||||
"time": 0.0097,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": {
|
||||
"details": "Assert.True() Failure
|
||||
Expected: True
|
||||
Actual: False
|
||||
at DotnetTests.XUnitTests.CalculatorTests.Theory_With_Custom_Name(Int32 i) in C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\dotnet\\DotnetTests.XUnitTests\\CalculatorTests.cs:line 67",
|
||||
"line": 67,
|
||||
"message": "Assert.True() Failure
|
||||
Expected: True
|
||||
Actual: False",
|
||||
"path": "DotnetTests.XUnitTests/CalculatorTests.cs",
|
||||
},
|
||||
"name": "Should be even number(i: 3)",
|
||||
"result": "failed",
|
||||
"time": 0.6537000000000001,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Skipped_Test",
|
||||
"result": "skipped",
|
||||
"time": 1,
|
||||
},
|
||||
TestCaseResult {
|
||||
"error": undefined,
|
||||
"name": "Timeout_Test",
|
||||
"result": "success",
|
||||
"time": 108.42580000000001,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"name": "DotnetTests.XUnitTests.CalculatorTests",
|
||||
"totalTime": undefined,
|
||||
},
|
||||
],
|
||||
"totalTime": 1116,
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`dotnet-trx tests matches report snapshot 1`] = `
|
||||
TestRunResult {
|
||||
"path": "fixtures/dotnet-trx.trx",
|
||||
|
||||
@@ -3,7 +3,7 @@ import * as path from 'path'
|
||||
|
||||
import {DotnetTrxParser} from '../src/parsers/dotnet-trx/dotnet-trx-parser'
|
||||
import {ParseOptions} from '../src/test-parser'
|
||||
import {DEFAULT_OPTIONS, getReport} from '../src/report/get-report'
|
||||
import {DEFAULT_OPTIONS, getReport, ReportOptions} from '../src/report/get-report'
|
||||
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||
|
||||
describe('dotnet-trx tests', () => {
|
||||
@@ -60,6 +60,32 @@ describe('dotnet-trx tests', () => {
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('matches report snapshot (only failed tests)', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'dotnet-trx.trx')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'dotnet-trx-only-failed.md')
|
||||
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||
|
||||
const opts: ParseOptions = {
|
||||
parseErrors: true,
|
||||
trackedFiles: ['DotnetTests.Unit/Calculator.cs', 'DotnetTests.XUnitTests/CalculatorTests.cs']
|
||||
//workDir: 'C:/Users/Michal/Workspace/dorny/test-check/reports/dotnet/'
|
||||
}
|
||||
|
||||
const parser = new DotnetTrxParser(opts)
|
||||
const result = await parser.parse(filePath, fileContent)
|
||||
expect(result).toMatchSnapshot()
|
||||
|
||||
const reportOptions: ReportOptions = {
|
||||
...DEFAULT_OPTIONS,
|
||||
listSuites: 'all',
|
||||
listTests: 'failed'
|
||||
}
|
||||
const report = getReport([result], reportOptions)
|
||||
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||
fs.writeFileSync(outputPath, report)
|
||||
})
|
||||
|
||||
it('report from FluentValidation test results matches snapshot', async () => {
|
||||
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'FluentValidation.Tests.trx')
|
||||
const outputPath = path.join(__dirname, '__outputs__', 'fluent-validation-test-results.md')
|
||||
|
||||
21
dist/index.js
generated
vendored
21
dist/index.js
generated
vendored
@@ -402,6 +402,10 @@ class TestReporter {
|
||||
}
|
||||
}
|
||||
const { listSuites, listTests, onlySummary, useActionsSummary, badgeTitle, reportTitle } = this;
|
||||
const passed = results.reduce((sum, tr) => sum + tr.passed, 0);
|
||||
const failed = results.reduce((sum, tr) => sum + tr.failed, 0);
|
||||
const skipped = results.reduce((sum, tr) => sum + tr.skipped, 0);
|
||||
const shortSummary = `${passed} passed, ${failed} failed and ${skipped} skipped `;
|
||||
let baseUrl = '';
|
||||
if (this.useActionsSummary) {
|
||||
const summary = (0, get_report_1.getReport)(results, {
|
||||
@@ -415,6 +419,7 @@ class TestReporter {
|
||||
});
|
||||
core.info('Summary content:');
|
||||
core.info(summary);
|
||||
core.summary.addRaw(`# ${shortSummary}`);
|
||||
await core.summary.addRaw(summary).write();
|
||||
}
|
||||
else {
|
||||
@@ -444,10 +449,6 @@ class TestReporter {
|
||||
const annotations = (0, get_annotations_1.getAnnotations)(results, this.maxAnnotations);
|
||||
const isFailed = this.failOnError && results.some(tr => tr.result === 'failed');
|
||||
const conclusion = isFailed ? 'failure' : 'success';
|
||||
const passed = results.reduce((sum, tr) => sum + tr.passed, 0);
|
||||
const failed = results.reduce((sum, tr) => sum + tr.failed, 0);
|
||||
const skipped = results.reduce((sum, tr) => sum + tr.skipped, 0);
|
||||
const shortSummary = `${passed} passed, ${failed} failed and ${skipped} skipped `;
|
||||
core.info(`Updating check run conclusion (${conclusion}) and output`);
|
||||
const resp = await this.octokit.rest.checks.update({
|
||||
check_run_id: createResp.data.id,
|
||||
@@ -2033,14 +2034,17 @@ function getTestRunsReport(testRuns, options) {
|
||||
}
|
||||
if (testRuns.length > 0 || options.onlySummary) {
|
||||
const tableData = testRuns
|
||||
.filter(tr => tr.passed > 0 || tr.failed > 0 || tr.skipped > 0)
|
||||
.map(tr => {
|
||||
.map((tr, originalIndex) => ({ tr, originalIndex }))
|
||||
.filter(({ tr }) => tr.passed > 0 || tr.failed > 0 || tr.skipped > 0)
|
||||
.map(({ tr, originalIndex }) => {
|
||||
const time = (0, markdown_utils_1.formatTime)(tr.time);
|
||||
const name = tr.path;
|
||||
const addr = options.baseUrl + makeRunSlug(originalIndex, options).link;
|
||||
const nameLink = (0, markdown_utils_1.link)(name, addr);
|
||||
const passed = tr.passed > 0 ? `${tr.passed} ${markdown_utils_1.Icon.success}` : '';
|
||||
const failed = tr.failed > 0 ? `${tr.failed} ${markdown_utils_1.Icon.fail}` : '';
|
||||
const skipped = tr.skipped > 0 ? `${tr.skipped} ${markdown_utils_1.Icon.skip}` : '';
|
||||
return [name, passed, failed, skipped, time];
|
||||
return [nameLink, passed, failed, skipped, time];
|
||||
});
|
||||
const resultsTable = (0, markdown_utils_1.table)(['Report', 'Passed', 'Failed', 'Skipped', 'Time'], [markdown_utils_1.Align.Left, markdown_utils_1.Align.Right, markdown_utils_1.Align.Right, markdown_utils_1.Align.Right, markdown_utils_1.Align.Right], ...tableData);
|
||||
sections.push(resultsTable);
|
||||
@@ -2111,6 +2115,9 @@ function getTestsReport(ts, runIndex, suiteIndex, options) {
|
||||
}
|
||||
const space = grp.name ? ' ' : '';
|
||||
for (const tc of grp.tests) {
|
||||
if (options.listTests === 'failed' && tc.result !== 'failed') {
|
||||
continue;
|
||||
}
|
||||
const result = getResultIcon(tc.result);
|
||||
sections.push(`${space}${result} ${tc.name}`);
|
||||
if (tc.error) {
|
||||
|
||||
11
src/main.ts
11
src/main.ts
@@ -168,6 +168,11 @@ class TestReporter {
|
||||
|
||||
const {listSuites, listTests, onlySummary, useActionsSummary, badgeTitle, reportTitle} = this
|
||||
|
||||
const passed = results.reduce((sum, tr) => sum + tr.passed, 0)
|
||||
const failed = results.reduce((sum, tr) => sum + tr.failed, 0)
|
||||
const skipped = results.reduce((sum, tr) => sum + tr.skipped, 0)
|
||||
const shortSummary = `${passed} passed, ${failed} failed and ${skipped} skipped `
|
||||
|
||||
let baseUrl = ''
|
||||
if (this.useActionsSummary) {
|
||||
const summary = getReport(results, {
|
||||
@@ -182,6 +187,7 @@ class TestReporter {
|
||||
|
||||
core.info('Summary content:')
|
||||
core.info(summary)
|
||||
core.summary.addRaw(`# ${shortSummary}`)
|
||||
await core.summary.addRaw(summary).write()
|
||||
} else {
|
||||
core.info(`Creating check run ${name}`)
|
||||
@@ -214,11 +220,6 @@ class TestReporter {
|
||||
const isFailed = this.failOnError && results.some(tr => tr.result === 'failed')
|
||||
const conclusion = isFailed ? 'failure' : 'success'
|
||||
|
||||
const passed = results.reduce((sum, tr) => sum + tr.passed, 0)
|
||||
const failed = results.reduce((sum, tr) => sum + tr.failed, 0)
|
||||
const skipped = results.reduce((sum, tr) => sum + tr.skipped, 0)
|
||||
const shortSummary = `${passed} passed, ${failed} failed and ${skipped} skipped `
|
||||
|
||||
core.info(`Updating check run conclusion (${conclusion}) and output`)
|
||||
const resp = await this.octokit.rest.checks.update({
|
||||
check_run_id: createResp.data.id,
|
||||
|
||||
@@ -159,14 +159,17 @@ function getTestRunsReport(testRuns: TestRunResult[], options: ReportOptions): s
|
||||
|
||||
if (testRuns.length > 0 || options.onlySummary) {
|
||||
const tableData = testRuns
|
||||
.filter(tr => tr.passed > 0 || tr.failed > 0 || tr.skipped > 0)
|
||||
.map(tr => {
|
||||
.map((tr, originalIndex) => ({tr, originalIndex}))
|
||||
.filter(({tr}) => tr.passed > 0 || tr.failed > 0 || tr.skipped > 0)
|
||||
.map(({tr, originalIndex}) => {
|
||||
const time = formatTime(tr.time)
|
||||
const name = tr.path
|
||||
const addr = options.baseUrl + makeRunSlug(originalIndex, options).link
|
||||
const nameLink = link(name, addr)
|
||||
const passed = tr.passed > 0 ? `${tr.passed} ${Icon.success}` : ''
|
||||
const failed = tr.failed > 0 ? `${tr.failed} ${Icon.fail}` : ''
|
||||
const skipped = tr.skipped > 0 ? `${tr.skipped} ${Icon.skip}` : ''
|
||||
return [name, passed, failed, skipped, time]
|
||||
return [nameLink, passed, failed, skipped, time]
|
||||
})
|
||||
|
||||
const resultsTable = table(
|
||||
@@ -260,6 +263,9 @@ function getTestsReport(ts: TestSuiteResult, runIndex: number, suiteIndex: numbe
|
||||
}
|
||||
const space = grp.name ? ' ' : ''
|
||||
for (const tc of grp.tests) {
|
||||
if (options.listTests === 'failed' && tc.result !== 'failed') {
|
||||
continue
|
||||
}
|
||||
const result = getResultIcon(tc.result)
|
||||
sections.push(`${space}${result} ${tc.name}`)
|
||||
if (tc.error) {
|
||||
|
||||
Reference in New Issue
Block a user