mirror of
https://github.com/dorny/test-reporter.git
synced 2025-12-16 14:27:10 +01:00
Merge pull request #118 from dorny/java-junit-support-errors
Fix JUnit test-cases with error misclassified as passed test
This commit is contained in:
commit
e8f4fdfec7
4 changed files with 25 additions and 12 deletions
16
dist/index.js
generated
vendored
16
dist/index.js
generated
vendored
|
|
@ -930,18 +930,24 @@ class JavaJunitParser {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
getTestCaseResult(test) {
|
getTestCaseResult(test) {
|
||||||
if (test.failure)
|
if (test.failure || test.error)
|
||||||
return 'failed';
|
return 'failed';
|
||||||
if (test.skipped)
|
if (test.skipped)
|
||||||
return 'skipped';
|
return 'skipped';
|
||||||
return 'success';
|
return 'success';
|
||||||
}
|
}
|
||||||
getTestCaseError(tc) {
|
getTestCaseError(tc) {
|
||||||
if (!this.options.parseErrors || !tc.failure) {
|
var _a;
|
||||||
|
if (!this.options.parseErrors) {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
const failure = tc.failure[0];
|
// We process <error> and <failure> the same way
|
||||||
const details = failure._;
|
const failures = (_a = tc.failure) !== null && _a !== void 0 ? _a : tc.error;
|
||||||
|
if (!failures) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
const failure = failures[0];
|
||||||
|
const details = typeof (failure) === 'object' ? failure._ : failure;
|
||||||
let filePath;
|
let filePath;
|
||||||
let line;
|
let line;
|
||||||
const src = this.exceptionThrowSource(details);
|
const src = this.exceptionThrowSource(details);
|
||||||
|
|
@ -953,7 +959,7 @@ class JavaJunitParser {
|
||||||
path: filePath,
|
path: filePath,
|
||||||
line,
|
line,
|
||||||
details,
|
details,
|
||||||
message: failure.message
|
message: typeof (failure) === 'object' ? failure.message : undefined
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
exceptionThrowSource(stackTrace) {
|
exceptionThrowSource(stackTrace) {
|
||||||
|
|
|
||||||
2
dist/index.js.map
generated
vendored
2
dist/index.js.map
generated
vendored
File diff suppressed because one or more lines are too long
|
|
@ -107,18 +107,24 @@ export class JavaJunitParser implements TestParser {
|
||||||
}
|
}
|
||||||
|
|
||||||
private getTestCaseResult(test: TestCase): TestExecutionResult {
|
private getTestCaseResult(test: TestCase): TestExecutionResult {
|
||||||
if (test.failure) return 'failed'
|
if (test.failure || test.error) return 'failed'
|
||||||
if (test.skipped) return 'skipped'
|
if (test.skipped) return 'skipped'
|
||||||
return 'success'
|
return 'success'
|
||||||
}
|
}
|
||||||
|
|
||||||
private getTestCaseError(tc: TestCase): TestCaseError | undefined {
|
private getTestCaseError(tc: TestCase): TestCaseError | undefined {
|
||||||
if (!this.options.parseErrors || !tc.failure) {
|
if (!this.options.parseErrors) {
|
||||||
return undefined
|
return undefined
|
||||||
}
|
}
|
||||||
|
|
||||||
const failure = tc.failure[0]
|
// We process <error> and <failure> the same way
|
||||||
const details = failure._
|
const failures = tc.failure ?? tc.error
|
||||||
|
if (!failures) {
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
|
|
||||||
|
const failure = failures[0]
|
||||||
|
const details = typeof failure === 'object' ? failure._ : failure
|
||||||
let filePath
|
let filePath
|
||||||
let line
|
let line
|
||||||
|
|
||||||
|
|
@ -132,7 +138,7 @@ export class JavaJunitParser implements TestParser {
|
||||||
path: filePath,
|
path: filePath,
|
||||||
line,
|
line,
|
||||||
details,
|
details,
|
||||||
message: failure.message
|
message: typeof failure === 'object' ? failure.message : undefined
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,8 @@ export interface TestCase {
|
||||||
name: string
|
name: string
|
||||||
time: string
|
time: string
|
||||||
}
|
}
|
||||||
failure?: Failure[]
|
failure?: string | Failure[]
|
||||||
|
error?: string | Failure[]
|
||||||
skipped?: string[]
|
skipped?: string[]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue