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 @@

|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 @@

|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 @@

|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 @@

|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 @@

|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 @@

|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 @@

|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 @@

|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 @@

|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 @@

|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 @@

|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 @@

|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 @@

|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(