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
parent
3e969f16b2
commit
a2b1ed6631
File diff suppressed because one or more lines are too long
|
@ -72,7 +72,7 @@ class ResultsParser {
|
||||||
}
|
}
|
||||||
|
|
||||||
static convertTestCase(suite, testCase) {
|
static convertTestCase(suite, testCase) {
|
||||||
const { _attributes, failure } = testCase;
|
const { _attributes, failure, output } = testCase;
|
||||||
const { name, fullname, result, duration } = _attributes;
|
const { name, fullname, result, duration } = _attributes;
|
||||||
const testMeta = new TestMeta(suite, name);
|
const testMeta = new TestMeta(suite, name);
|
||||||
testMeta.result = result;
|
testMeta.result = result;
|
||||||
|
@ -96,6 +96,14 @@ class ResultsParser {
|
||||||
return testMeta;
|
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 = {
|
testMeta.annotation = {
|
||||||
path: point.path,
|
path: point.path,
|
||||||
start_line: point.line,
|
start_line: point.line,
|
||||||
|
@ -103,7 +111,7 @@ class ResultsParser {
|
||||||
annotation_level: 'failure',
|
annotation_level: 'failure',
|
||||||
title: fullname,
|
title: fullname,
|
||||||
message: failure.message._cdata ? failure.message._cdata : 'Test Failed!',
|
message: failure.message._cdata ? failure.message._cdata : 'Test Failed!',
|
||||||
raw_details: trace,
|
raw_details: rawDetails.join('\n'),
|
||||||
};
|
};
|
||||||
core.info(
|
core.info(
|
||||||
`- ${testMeta.annotation.path}:${testMeta.annotation.start_line} - ${testMeta.annotation.title}`,
|
`- ${testMeta.annotation.path}:${testMeta.annotation.start_line} - ${testMeta.annotation.title}`,
|
||||||
|
|
|
@ -149,7 +149,7 @@ describe('ResultsParser', () => {
|
||||||
expect(result.annotation).toBeUndefined();
|
expect(result.annotation).toBeUndefined();
|
||||||
});
|
});
|
||||||
|
|
||||||
test('prepare annotation', () => {
|
test('prepare annotation without console output', () => {
|
||||||
const result = ResultsParser.convertTestCase('Test Suite', {
|
const result = ResultsParser.convertTestCase('Test Suite', {
|
||||||
_attributes: {
|
_attributes: {
|
||||||
name: 'Test Name',
|
name: 'Test Name',
|
||||||
|
@ -179,6 +179,40 @@ describe('ResultsParser', () => {
|
||||||
title: 'Test Full Name',
|
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', () => {
|
describe('findAnnotationPoint', () => {
|
||||||
|
|
Loading…
Reference in New Issue