show console output in the GitHub Check annotations (#149)

The annotation raw details now include console output (if available) and stack trace.
pull/151/head
Michal Cichra 2021-10-21 22:53:41 +02:00 committed by GitHub
parent 3e969f16b2
commit a2b1ed6631
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 46 additions and 4 deletions

File diff suppressed because one or more lines are too long

View File

@ -72,7 +72,7 @@ class ResultsParser {
}
static convertTestCase(suite, testCase) {
const { _attributes, failure } = testCase;
const { _attributes, failure, output } = testCase;
const { name, fullname, result, duration } = _attributes;
const testMeta = new TestMeta(suite, name);
testMeta.result = result;
@ -96,6 +96,14 @@ class ResultsParser {
return testMeta;
}
const rawDetails = [trace];
if (output && output._cdata) {
rawDetails.unshift(output._cdata);
} else {
core.debug(`No console output for test case: ${fullname}`);
}
testMeta.annotation = {
path: point.path,
start_line: point.line,
@ -103,7 +111,7 @@ class ResultsParser {
annotation_level: 'failure',
title: fullname,
message: failure.message._cdata ? failure.message._cdata : 'Test Failed!',
raw_details: trace,
raw_details: rawDetails.join('\n'),
};
core.info(
`- ${testMeta.annotation.path}:${testMeta.annotation.start_line} - ${testMeta.annotation.title}`,

View File

@ -149,7 +149,7 @@ describe('ResultsParser', () => {
expect(result.annotation).toBeUndefined();
});
test('prepare annotation', () => {
test('prepare annotation without console output', () => {
const result = ResultsParser.convertTestCase('Test Suite', {
_attributes: {
name: 'Test Name',
@ -179,6 +179,40 @@ describe('ResultsParser', () => {
title: 'Test Full Name',
});
});
test('prepare annotation with console output', () => {
const result = ResultsParser.convertTestCase('Test Suite', {
_attributes: {
name: 'Test Name',
fullname: 'Test Full Name',
duration: '3.14',
},
output: {
_cdata: '[Warning] This is a warning',
},
failure: {
message: { _cdata: 'Message CDATA' },
'stack-trace': {
_cdata:
'at Tests.SetupFailedTest.SetUp () [0x00000] in /github/workspace/unity-project/Assets/Tests/SetupFailedTest.cs:10',
},
},
});
expect(result.suite).toBe('Test Suite');
expect(result.title).toBe('Test Name');
expect(result.duration).toBe(3.14);
expect(result.annotation).toMatchObject({
annotation_level: 'failure',
end_line: 10,
message: 'Message CDATA',
path: '/github/workspace/unity-project/Assets/Tests/SetupFailedTest.cs',
raw_details:
'[Warning] This is a warning\nat Tests.SetupFailedTest.SetUp () [0x00000] in /github/workspace/unity-project/Assets/Tests/SetupFailedTest.cs:10',
start_line: 10,
title: 'Test Full Name',
});
});
});
describe('findAnnotationPoint', () => {