diff --git a/src/observers/DotnetTestLoggerObserver.ts b/src/observers/DotnetTestLoggerObserver.ts index fc1d3ae28..88f596e2b 100644 --- a/src/observers/DotnetTestLoggerObserver.ts +++ b/src/observers/DotnetTestLoggerObserver.ts @@ -72,7 +72,9 @@ export default class DotNetTestLoggerObserver extends BaseLoggerObserver { private handleReportDotnetTestResults(event: ReportDotNetTestResults) { this.logger.appendLine("----- Test Execution Summary -----"); this.logger.appendLine(''); - const results = event.results; + + // Omnisharp returns null results if there are build failures + const results = event.results || []; const totalTests = results.length; let totalPassed = 0, totalFailed = 0, totalSkipped = 0; diff --git a/test/unitTests/logging/DotnetTestLoggerObserver.test.ts b/test/unitTests/logging/DotnetTestLoggerObserver.test.ts index d113b2316..2af99c802 100644 --- a/test/unitTests/logging/DotnetTestLoggerObserver.test.ts +++ b/test/unitTests/logging/DotnetTestLoggerObserver.test.ts @@ -107,6 +107,11 @@ suite(`${DotNetTestLoggerObserver.name}`, () => { result.StandardError.forEach(message => expect(appendedMessage).to.contain(message)); }); }); + + test(`Can handle malformed results`, () => { + observer.post(new ReportDotNetTestResults([])); + expect(appendedMessage).to.contain("----- Test Execution Summary -----\n\nTotal tests: 0. Passed: 0. Failed: 0. Skipped: 0"); + }); }); });