mirror of
https://github.com/dorny/test-reporter.git
synced 2026-02-01 10:55:23 -08:00
Feature: Add summary title
Add new option `report-title` to add H1 title to the Markdown report Resolves #540
This commit is contained in:
committed by
Jozef Izso
parent
d1bf678c89
commit
0841c8130e
@@ -1,3 +1,4 @@
|
||||
# Test Results
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Test Results
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Test Results
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Test Results
|
||||

|
||||
<details><summary>Expand for details</summary>
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Test Results
|
||||

|
||||
<details><summary>Expand for details</summary>
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Test Results
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Test Results
|
||||

|
||||
<details><summary>Expand for details</summary>
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Test Results
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Test Results
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Test Results
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Test Results
|
||||

|
||||
<details><summary>Expand for details</summary>
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Test Results
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Test Results
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Test Results
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Test Results
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Test Results
|
||||

|
||||
<details><summary>Expand for details</summary>
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Test Results
|
||||

|
||||
|Report|Passed|Failed|Skipped|Time|
|
||||
|:---|---:|---:|---:|---:|
|
||||
|
||||
27
dist/index.js
generated
vendored
27
dist/index.js
generated
vendored
@@ -307,6 +307,7 @@ class TestReporter {
|
||||
onlySummary = core.getInput('only-summary', { required: false }) === 'true';
|
||||
useActionsSummary = core.getInput('use-actions-summary', { required: false }) === 'true';
|
||||
badgeTitle = core.getInput('badge-title', { required: false });
|
||||
reportTitle = core.getInput('report-title', { required: false });
|
||||
token = core.getInput('token', { required: true });
|
||||
octokit;
|
||||
context = (0, github_utils_1.getCheckRunContext)();
|
||||
@@ -399,10 +400,18 @@ class TestReporter {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
const { listSuites, listTests, onlySummary, useActionsSummary, badgeTitle } = this;
|
||||
const { listSuites, listTests, onlySummary, useActionsSummary, badgeTitle, reportTitle } = this;
|
||||
let baseUrl = '';
|
||||
if (this.useActionsSummary) {
|
||||
const summary = (0, get_report_1.getReport)(results, { listSuites, listTests, baseUrl, onlySummary, useActionsSummary, badgeTitle });
|
||||
const summary = (0, get_report_1.getReport)(results, {
|
||||
listSuites,
|
||||
listTests,
|
||||
baseUrl,
|
||||
onlySummary,
|
||||
useActionsSummary,
|
||||
badgeTitle,
|
||||
reportTitle
|
||||
});
|
||||
core.info('Summary content:');
|
||||
core.info(summary);
|
||||
await core.summary.addRaw(summary).write();
|
||||
@@ -421,7 +430,15 @@ class TestReporter {
|
||||
});
|
||||
core.info('Creating report summary');
|
||||
baseUrl = createResp.data.html_url;
|
||||
const summary = (0, get_report_1.getReport)(results, { listSuites, listTests, baseUrl, onlySummary, useActionsSummary, badgeTitle });
|
||||
const summary = (0, get_report_1.getReport)(results, {
|
||||
listSuites,
|
||||
listTests,
|
||||
baseUrl,
|
||||
onlySummary,
|
||||
useActionsSummary,
|
||||
badgeTitle,
|
||||
reportTitle
|
||||
});
|
||||
core.info('Creating annotations');
|
||||
const annotations = (0, get_annotations_1.getAnnotations)(results, this.maxAnnotations);
|
||||
const isFailed = this.failOnError && results.some(tr => tr.result === 'failed');
|
||||
@@ -1800,7 +1817,8 @@ const defaultOptions = {
|
||||
baseUrl: '',
|
||||
onlySummary: false,
|
||||
useActionsSummary: true,
|
||||
badgeTitle: 'tests'
|
||||
badgeTitle: 'tests',
|
||||
reportTitle: 'Test Results'
|
||||
};
|
||||
function getReport(results, options = defaultOptions) {
|
||||
core.info('Generating check run summary');
|
||||
@@ -1863,6 +1881,7 @@ function getByteLength(text) {
|
||||
}
|
||||
function renderReport(results, options) {
|
||||
const sections = [];
|
||||
sections.push(`# ${options.reportTitle}`);
|
||||
const badge = getReportBadge(results, options);
|
||||
sections.push(badge);
|
||||
const runs = getTestRunsReport(results, options);
|
||||
|
||||
23
src/main.ts
23
src/main.ts
@@ -47,6 +47,7 @@ class TestReporter {
|
||||
readonly onlySummary = core.getInput('only-summary', {required: false}) === 'true'
|
||||
readonly useActionsSummary = core.getInput('use-actions-summary', {required: false}) === 'true'
|
||||
readonly badgeTitle = core.getInput('badge-title', {required: false})
|
||||
readonly reportTitle = core.getInput('report-title', {required: false})
|
||||
readonly token = core.getInput('token', {required: true})
|
||||
readonly octokit: InstanceType<typeof GitHub>
|
||||
readonly context = getCheckRunContext()
|
||||
@@ -164,11 +165,19 @@ class TestReporter {
|
||||
}
|
||||
}
|
||||
|
||||
const {listSuites, listTests, onlySummary, useActionsSummary, badgeTitle} = this
|
||||
const {listSuites, listTests, onlySummary, useActionsSummary, badgeTitle, reportTitle} = this
|
||||
|
||||
let baseUrl = ''
|
||||
if (this.useActionsSummary) {
|
||||
const summary = getReport(results, {listSuites, listTests, baseUrl, onlySummary, useActionsSummary, badgeTitle})
|
||||
const summary = getReport(results, {
|
||||
listSuites,
|
||||
listTests,
|
||||
baseUrl,
|
||||
onlySummary,
|
||||
useActionsSummary,
|
||||
badgeTitle,
|
||||
reportTitle
|
||||
})
|
||||
|
||||
core.info('Summary content:')
|
||||
core.info(summary)
|
||||
@@ -188,7 +197,15 @@ class TestReporter {
|
||||
|
||||
core.info('Creating report summary')
|
||||
baseUrl = createResp.data.html_url as string
|
||||
const summary = getReport(results, {listSuites, listTests, baseUrl, onlySummary, useActionsSummary, badgeTitle})
|
||||
const summary = getReport(results, {
|
||||
listSuites,
|
||||
listTests,
|
||||
baseUrl,
|
||||
onlySummary,
|
||||
useActionsSummary,
|
||||
badgeTitle,
|
||||
reportTitle
|
||||
})
|
||||
|
||||
core.info('Creating annotations')
|
||||
const annotations = getAnnotations(results, this.maxAnnotations)
|
||||
|
||||
@@ -15,6 +15,7 @@ export interface ReportOptions {
|
||||
onlySummary: boolean
|
||||
useActionsSummary: boolean
|
||||
badgeTitle: string
|
||||
reportTitle: string
|
||||
}
|
||||
|
||||
const defaultOptions: ReportOptions = {
|
||||
@@ -23,7 +24,8 @@ const defaultOptions: ReportOptions = {
|
||||
baseUrl: '',
|
||||
onlySummary: false,
|
||||
useActionsSummary: true,
|
||||
badgeTitle: 'tests'
|
||||
badgeTitle: 'tests',
|
||||
reportTitle: 'Test Results'
|
||||
}
|
||||
|
||||
export function getReport(results: TestRunResult[], options: ReportOptions = defaultOptions): string {
|
||||
@@ -101,6 +103,8 @@ function getByteLength(text: string): number {
|
||||
|
||||
function renderReport(results: TestRunResult[], options: ReportOptions): string[] {
|
||||
const sections: string[] = []
|
||||
sections.push(`# ${options.reportTitle}`)
|
||||
|
||||
const badge = getReportBadge(results, options)
|
||||
sections.push(badge)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user