mirror of
https://github.com/dorny/test-reporter.git
synced 2025-12-16 14:27:10 +01:00
Fix flutter-json doesn't provide error details
This commit is contained in:
parent
2365963b2e
commit
855ff9bfaf
13 changed files with 3196 additions and 51 deletions
|
|
@ -14,7 +14,9 @@ import {
|
|||
isTestStartEvent,
|
||||
isTestDoneEvent,
|
||||
isErrorEvent,
|
||||
isDoneEvent
|
||||
isDoneEvent,
|
||||
isMessageEvent,
|
||||
MessageEvent
|
||||
} from './dart-json-types'
|
||||
|
||||
import {
|
||||
|
|
@ -45,8 +47,10 @@ class TestCase {
|
|||
this.groupId = testStart.test.groupIDs[testStart.test.groupIDs.length - 1]
|
||||
}
|
||||
readonly groupId: number
|
||||
readonly print: MessageEvent[] = []
|
||||
testDone?: TestDoneEvent
|
||||
error?: ErrorEvent
|
||||
|
||||
get result(): TestExecutionResult {
|
||||
if (this.testDone?.skipped) {
|
||||
return 'skipped'
|
||||
|
|
@ -112,7 +116,10 @@ export class DartJsonParser implements TestParser {
|
|||
tests[evt.testID].testDone = evt
|
||||
} else if (isErrorEvent(evt)) {
|
||||
tests[evt.testID].error = evt
|
||||
} else if (isDoneEvent(evt)) {
|
||||
} else if (isMessageEvent(evt)) {
|
||||
tests[evt.testID].print.push(evt)
|
||||
}
|
||||
else if (isDoneEvent(evt)) {
|
||||
success = evt.success
|
||||
totalTime = evt.time
|
||||
}
|
||||
|
|
@ -151,6 +158,8 @@ export class DartJsonParser implements TestParser {
|
|||
const {trackedFiles} = this.options
|
||||
const message = test.error?.error ?? ''
|
||||
const stackTrace = test.error?.stackTrace ?? ''
|
||||
const print = test.print.filter(p => p.messageType === 'print').map(p => p.message).join('\n')
|
||||
const details = [print, stackTrace].filter(str => str !== '').join('\n')
|
||||
const src = this.exceptionThrowSource(stackTrace, trackedFiles)
|
||||
let path
|
||||
let line
|
||||
|
|
@ -170,7 +179,7 @@ export class DartJsonParser implements TestParser {
|
|||
path,
|
||||
line,
|
||||
message,
|
||||
stackTrace
|
||||
details
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ export interface DebugEvent extends Event {
|
|||
export interface MessageEvent extends Event {
|
||||
type: 'print'
|
||||
testID: number
|
||||
messageType: string
|
||||
messageType: 'print' | 'skip'
|
||||
message: string
|
||||
}
|
||||
|
||||
|
|
@ -127,3 +127,6 @@ export function isErrorEvent(event: Event): event is ErrorEvent {
|
|||
export function isDoneEvent(event: Event): event is DoneEvent {
|
||||
return event.type === 'done'
|
||||
}
|
||||
export function isMessageEvent(event: Event): event is MessageEvent {
|
||||
return event.type === 'print'
|
||||
}
|
||||
|
|
|
|||
|
|
@ -130,7 +130,7 @@ export class DotnetTrxParser implements TestParser {
|
|||
path,
|
||||
line,
|
||||
message,
|
||||
stackTrace: `${message}\n${stackTrace}`
|
||||
details: `${message}\n${stackTrace}`
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -75,11 +75,11 @@ export class JestJunitParser implements TestParser {
|
|||
return undefined
|
||||
}
|
||||
|
||||
const stackTrace = tc.failure[0]
|
||||
const details = tc.failure[0]
|
||||
let path
|
||||
let line
|
||||
|
||||
const src = this.exceptionThrowSource(stackTrace)
|
||||
const src = this.exceptionThrowSource(details)
|
||||
if (src) {
|
||||
path = src.path
|
||||
line = src.line
|
||||
|
|
@ -88,7 +88,7 @@ export class JestJunitParser implements TestParser {
|
|||
return {
|
||||
path,
|
||||
line,
|
||||
stackTrace
|
||||
details
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue