diff --git a/news/1 Enhancements/4727.md b/news/1 Enhancements/4727.md new file mode 100644 index 000000000000..26c314280067 --- /dev/null +++ b/news/1 Enhancements/4727.md @@ -0,0 +1 @@ +Update status of test suite when all tests pass (parametric tests) diff --git a/src/client/unittests/common/services/testResultsService.ts b/src/client/unittests/common/services/testResultsService.ts index 58122faf14cc..bbe111894c8e 100644 --- a/src/client/unittests/common/services/testResultsService.ts +++ b/src/client/unittests/common/services/testResultsService.ts @@ -33,6 +33,20 @@ export class TestResultsService implements ITestResultsService { } } }); + tests.testSuites.forEach(item => { + if (typeof item.testSuite.passed === 'boolean') { + if (status === TestStatus.Pass ? item.testSuite.passed : !item.testSuite.passed) { + visitParentsRecursive(tests, item.testSuite, visitor); + } + } + }); + tests.testFunctions.forEach(item => { + if (typeof item.testFunction.passed === 'boolean') { + if (status === TestStatus.Pass ? item.testFunction.passed : !item.testFunction.passed) { + visitParentsRecursive(tests, item.testFunction, visitor); + } + } + }); } private updateTestFolderResults(testFolder: TestFolder): void { let totalTime = 0; diff --git a/src/client/unittests/explorer/testTreeViewItem.ts b/src/client/unittests/explorer/testTreeViewItem.ts index bce85268c056..55c1e5132f33 100644 --- a/src/client/unittests/explorer/testTreeViewItem.ts +++ b/src/client/unittests/explorer/testTreeViewItem.ts @@ -76,6 +76,9 @@ export class TestTreeItem extends TreeItem { return ''; } if (this.testType !== TestType.testFunction) { + if (result.functionsPassed === undefined) { + return ''; + } return `${result.functionsFailed} failed, ${result.functionsPassed} passed in ${+result.time.toFixed(3)} seconds`; } switch (this.data.status) { diff --git a/src/client/unittests/types.ts b/src/client/unittests/types.ts index 8634e1a129d3..412aebf0631d 100644 --- a/src/client/unittests/types.ts +++ b/src/client/unittests/types.ts @@ -160,6 +160,10 @@ export type TestDataItem = TestWorkspaceFolder | TestFolder | TestFile | TestSui export class TestWorkspaceFolder { public status?: TestStatus; + public time?: number; + public functionsPassed?: number; + public functionsFailed?: number; + public functionsDidNotRun?: number; constructor(public readonly workspaceFolder: WorkspaceFolder) { } public get resource(): Uri { return this.workspaceFolder.uri;