diff --git a/__tests__/__outputs__/dart-json.md b/__tests__/__outputs__/dart-json.md index 9805d20..2b7ec09 100644 --- a/__tests__/__outputs__/dart-json.md +++ b/__tests__/__outputs__/dart-json.md @@ -1,7 +1,7 @@ ![Tests failed](https://img.shields.io/badge/tests-1%20passed%2C%204%20failed%2C%201%20skipped-critical) |Report|Passed|Failed|Skipped|Time| |:---|---:|---:|---:|---:| -|fixtures/dart-json.json|1 ✅|4 ❌|1 ⚪|4s| +|[fixtures/dart-json.json](#user-content-r0)|1 ✅|4 ❌|1 ⚪|4s| ## ❌ fixtures/dart-json.json **6** tests were completed in **4s** with **1** passed, **4** failed and **1** skipped. |Test suite|Passed|Failed|Skipped|Time| diff --git a/__tests__/__outputs__/dotnet-nunit.md b/__tests__/__outputs__/dotnet-nunit.md index e33c66d..a0985f5 100644 --- a/__tests__/__outputs__/dotnet-nunit.md +++ b/__tests__/__outputs__/dotnet-nunit.md @@ -1,7 +1,7 @@ ![Tests failed](https://img.shields.io/badge/tests-3%20passed%2C%205%20failed%2C%201%20skipped-critical) |Report|Passed|Failed|Skipped|Time| |:---|---:|---:|---:|---:| -|fixtures/dotnet-nunit.xml|3 ✅|5 ❌|1 ⚪|230ms| +|[fixtures/dotnet-nunit.xml](#user-content-r0)|3 ✅|5 ❌|1 ⚪|230ms| ## ❌ fixtures/dotnet-nunit.xml **9** tests were completed in **230ms** with **3** passed, **5** failed and **1** skipped. |Test suite|Passed|Failed|Skipped|Time| diff --git a/__tests__/__outputs__/dotnet-trx.md b/__tests__/__outputs__/dotnet-trx.md index eedab46..92f12c0 100644 --- a/__tests__/__outputs__/dotnet-trx.md +++ b/__tests__/__outputs__/dotnet-trx.md @@ -1,7 +1,7 @@ ![Tests failed](https://img.shields.io/badge/tests-5%20passed%2C%205%20failed%2C%201%20skipped-critical) |Report|Passed|Failed|Skipped|Time| |:---|---:|---:|---:|---:| -|fixtures/dotnet-trx.trx|5 ✅|5 ❌|1 ⚪|1s| +|[fixtures/dotnet-trx.trx](#user-content-r0)|5 ✅|5 ❌|1 ⚪|1s| ## ❌ fixtures/dotnet-trx.trx **11** tests were completed in **1s** with **5** passed, **5** failed and **1** skipped. |Test suite|Passed|Failed|Skipped|Time| diff --git a/__tests__/__outputs__/fluent-validation-test-results.md b/__tests__/__outputs__/fluent-validation-test-results.md index 9337a62..83d0503 100644 --- a/__tests__/__outputs__/fluent-validation-test-results.md +++ b/__tests__/__outputs__/fluent-validation-test-results.md @@ -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| ## ✅ fixtures/external/FluentValidation.Tests.trx **804** tests were completed in **4s** with **803** passed, **0** failed and **1** skipped. |Test suite|Passed|Failed|Skipped|Time| diff --git a/__tests__/__outputs__/golang-json.md b/__tests__/__outputs__/golang-json.md index b3640d8..8b63704 100644 --- a/__tests__/__outputs__/golang-json.md +++ b/__tests__/__outputs__/golang-json.md @@ -1,7 +1,7 @@ ![Tests failed](https://img.shields.io/badge/tests-5%20passed%2C%206%20failed%2C%201%20skipped-critical) |Report|Passed|Failed|Skipped|Time| |:---|---:|---:|---:|---:| -|fixtures/golang-json.json|5 ✅|6 ❌|1 ⚪|6s| +|[fixtures/golang-json.json](#user-content-r0)|5 ✅|6 ❌|1 ⚪|6s| ## ❌ fixtures/golang-json.json **12** tests were completed in **6s** with **5** passed, **6** failed and **1** skipped. |Test suite|Passed|Failed|Skipped|Time| diff --git a/__tests__/__outputs__/jest-junit-eslint.md b/__tests__/__outputs__/jest-junit-eslint.md index d3ad9b9..5ebb57e 100644 --- a/__tests__/__outputs__/jest-junit-eslint.md +++ b/__tests__/__outputs__/jest-junit-eslint.md @@ -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| ## ✅ fixtures/jest-junit-eslint.xml **1** tests were completed in **0ms** with **1** passed, **0** failed and **0** skipped. |Test suite|Passed|Failed|Skipped|Time| diff --git a/__tests__/__outputs__/jest-junit.md b/__tests__/__outputs__/jest-junit.md index ed5a174..951256f 100644 --- a/__tests__/__outputs__/jest-junit.md +++ b/__tests__/__outputs__/jest-junit.md @@ -1,7 +1,7 @@ ![Tests failed](https://img.shields.io/badge/tests-1%20passed%2C%204%20failed%2C%201%20skipped-critical) |Report|Passed|Failed|Skipped|Time| |:---|---:|---:|---:|---:| -|fixtures/jest-junit.xml|1 ✅|4 ❌|1 ⚪|1s| +|[fixtures/jest-junit.xml](#user-content-r0)|1 ✅|4 ❌|1 ⚪|1s| ## ❌ fixtures/jest-junit.xml **6** tests were completed in **1s** with **1** passed, **4** failed and **1** skipped. |Test suite|Passed|Failed|Skipped|Time| diff --git a/__tests__/__outputs__/jest-react-component-test-results.md b/__tests__/__outputs__/jest-react-component-test-results.md index d71db4c..1365818 100644 --- a/__tests__/__outputs__/jest-react-component-test-results.md +++ b/__tests__/__outputs__/jest-react-component-test-results.md @@ -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| ## ✅ fixtures/external/jest/jest-react-component-test-results.xml **1** tests were completed in **1000ms** with **1** passed, **0** failed and **0** skipped. |Test suite|Passed|Failed|Skipped|Time| diff --git a/__tests__/__outputs__/jest-test-results.md b/__tests__/__outputs__/jest-test-results.md index 25dd567..cfbc169 100644 --- a/__tests__/__outputs__/jest-test-results.md +++ b/__tests__/__outputs__/jest-test-results.md @@ -1,7 +1,7 @@ ![Tests failed](https://img.shields.io/badge/tests-4207%20passed%2C%202%20failed%2C%2030%20skipped-critical) |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| ## ❌ fixtures/external/jest/jest-test-results.xml **4239** tests were completed in **166s** with **4207** passed, **2** failed and **30** skipped. |Test suite|Passed|Failed|Skipped|Time| diff --git a/__tests__/__outputs__/junit-with-message.md b/__tests__/__outputs__/junit-with-message.md index 988d8fc..634a402 100644 --- a/__tests__/__outputs__/junit-with-message.md +++ b/__tests__/__outputs__/junit-with-message.md @@ -1,7 +1,7 @@ ![Tests failed](https://img.shields.io/badge/tests-1%20failed-critical) |Report|Passed|Failed|Skipped|Time| |:---|---:|---:|---:|---:| -|fixtures/junit-with-message.xml||1 ❌||1ms| +|[fixtures/junit-with-message.xml](#user-content-r0)||1 ❌||1ms| ## ❌ fixtures/junit-with-message.xml **1** tests were completed in **1ms** with **0** passed, **1** failed and **0** skipped. |Test suite|Passed|Failed|Skipped|Time| diff --git a/__tests__/__outputs__/mocha-json.md b/__tests__/__outputs__/mocha-json.md index 50419e1..875f881 100644 --- a/__tests__/__outputs__/mocha-json.md +++ b/__tests__/__outputs__/mocha-json.md @@ -1,7 +1,7 @@ ![Tests failed](https://img.shields.io/badge/tests-1%20passed%2C%204%20failed%2C%201%20skipped-critical) |Report|Passed|Failed|Skipped|Time| |:---|---:|---:|---:|---:| -|fixtures/mocha-json.json|1 ✅|4 ❌|1 ⚪|12ms| +|[fixtures/mocha-json.json](#user-content-r0)|1 ✅|4 ❌|1 ⚪|12ms| ## ❌ fixtures/mocha-json.json **6** tests were completed in **12ms** with **1** passed, **4** failed and **1** skipped. |Test suite|Passed|Failed|Skipped|Time| diff --git a/__tests__/__outputs__/mocha-test-results.md b/__tests__/__outputs__/mocha-test-results.md index 8831d7b..4a6e2f6 100644 --- a/__tests__/__outputs__/mocha-test-results.md +++ b/__tests__/__outputs__/mocha-test-results.md @@ -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| ## ✅ fixtures/external/mocha/mocha-test-results.json **839** tests were completed in **6s** with **833** passed, **0** failed and **6** skipped. |Test suite|Passed|Failed|Skipped|Time| diff --git a/__tests__/__outputs__/provider-test-results.md b/__tests__/__outputs__/provider-test-results.md index b2216ad..172f070 100644 --- a/__tests__/__outputs__/provider-test-results.md +++ b/__tests__/__outputs__/provider-test-results.md @@ -1,7 +1,7 @@ ![Tests failed](https://img.shields.io/badge/tests-268%20passed%2C%201%20failed-critical) |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| ## ❌ fixtures/external/flutter/provider-test-results.json **269** tests were completed in **0ms** with **268** passed, **1** failed and **0** skipped. |Test suite|Passed|Failed|Skipped|Time| diff --git a/__tests__/__outputs__/pulsar-test-results-no-merge.md b/__tests__/__outputs__/pulsar-test-results-no-merge.md index b1738a4..de5a9b6 100644 --- a/__tests__/__outputs__/pulsar-test-results-no-merge.md +++ b/__tests__/__outputs__/pulsar-test-results-no-merge.md @@ -1,7 +1,7 @@ ![Tests failed](https://img.shields.io/badge/tests-1%20failed%2C%201%20skipped-critical) |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| ## ❌ fixtures/external/java/TEST-org.apache.pulsar.AddMissingPatchVersionTest.xml **2** tests were completed in **116ms** with **0** passed, **1** failed and **1** skipped. |Test suite|Passed|Failed|Skipped|Time| diff --git a/__tests__/__outputs__/pulsar-test-results.md b/__tests__/__outputs__/pulsar-test-results.md index a9a5290..aaaa82e 100644 --- a/__tests__/__outputs__/pulsar-test-results.md +++ b/__tests__/__outputs__/pulsar-test-results.md @@ -1,7 +1,7 @@ ![Tests failed](https://img.shields.io/badge/tests-793%20passed%2C%201%20failed%2C%2014%20skipped-critical) |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| ## ❌ fixtures/external/java/pulsar-test-report.xml **808** tests were completed in **2127s** with **793** passed, **1** failed and **14** skipped. |Test suite|Passed|Failed|Skipped|Time| diff --git a/__tests__/__outputs__/rspec-json.md b/__tests__/__outputs__/rspec-json.md index 7444608..d64cf44 100644 --- a/__tests__/__outputs__/rspec-json.md +++ b/__tests__/__outputs__/rspec-json.md @@ -1,7 +1,7 @@ ![Tests failed](https://img.shields.io/badge/tests-1%20passed%2C%201%20failed%2C%201%20skipped-critical) |Report|Passed|Failed|Skipped|Time| |:---|---:|---:|---:|---:| -|fixtures/rspec-json.json|1 ✅|1 ❌|1 ⚪|0ms| +|[fixtures/rspec-json.json](#user-content-r0)|1 ✅|1 ❌|1 ⚪|0ms| ## ❌ fixtures/rspec-json.json **3** tests were completed in **0ms** with **1** passed, **1** failed and **1** skipped. |Test suite|Passed|Failed|Skipped|Time| diff --git a/__tests__/__outputs__/silent-notes-test-results.md b/__tests__/__outputs__/silent-notes-test-results.md index 34f5bab..e3abc49 100644 --- a/__tests__/__outputs__/silent-notes-test-results.md +++ b/__tests__/__outputs__/silent-notes-test-results.md @@ -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| ## ✅ fixtures/external/SilentNotes.trx **79** tests were completed in **1s** with **67** passed, **0** failed and **12** skipped. |Test suite|Passed|Failed|Skipped|Time| diff --git a/__tests__/__outputs__/swift-xunit.md b/__tests__/__outputs__/swift-xunit.md index 6f9ed46..b001151 100644 --- a/__tests__/__outputs__/swift-xunit.md +++ b/__tests__/__outputs__/swift-xunit.md @@ -1,7 +1,7 @@ ![Tests failed](https://img.shields.io/badge/tests-2%20passed%2C%201%20failed-critical) |Report|Passed|Failed|Skipped|Time| |:---|---:|---:|---:|---:| -|fixtures/swift-xunit.xml|2 ✅|1 ❌||220ms| +|[fixtures/swift-xunit.xml](#user-content-r0)|2 ✅|1 ❌||220ms| ## ❌ fixtures/swift-xunit.xml **3** tests were completed in **220ms** with **2** passed, **1** failed and **0** skipped. |Test suite|Passed|Failed|Skipped|Time| diff --git a/dist/index.js b/dist/index.js index bf79df4..d1162f4 100644 --- a/dist/index.js +++ b/dist/index.js @@ -2034,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); diff --git a/src/report/get-report.ts b/src/report/get-report.ts index a3385e9..24465e3 100644 --- a/src/report/get-report.ts +++ b/src/report/get-report.ts @@ -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(