From b8bd4412376a18f6fb8ca6a73e374e430c87a566 Mon Sep 17 00:00:00 2001 From: Connor Peet Date: Mon, 27 Nov 2023 17:31:25 -0500 Subject: [PATCH] publish test coverage at the right time in the test sample (#924) --- test-provider-sample/src/extension.ts | 32 +++++++++---------- .../vscode.proposed.testCoverage.d.ts | 7 +++- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/test-provider-sample/src/extension.ts b/test-provider-sample/src/extension.ts index 2bf39f23..a6d24305 100644 --- a/test-provider-sample/src/extension.ts +++ b/test-provider-sample/src/extension.ts @@ -102,25 +102,25 @@ export async function activate(context: vscode.ExtensionContext) { run.appendOutput(`Completed ${test.id}\r\n`); } + run.coverageProvider = { + provideFileCoverage() { + const coverage: vscode.FileCoverage[] = []; + for (const [uri, statements] of coveredLines) { + coverage.push( + vscode.FileCoverage.fromDetails( + vscode.Uri.parse(uri), + statements.filter((s): s is vscode.StatementCoverage => !!s) + ) + ); + } + + return coverage; + }, + }; + run.end(); }; - run.coverageProvider = { - provideFileCoverage() { - const coverage: vscode.FileCoverage[] = []; - for (const [uri, statements] of coveredLines) { - coverage.push( - vscode.FileCoverage.fromDetails( - vscode.Uri.parse(uri), - statements.filter((s): s is vscode.StatementCoverage => !!s) - ) - ); - } - - return coverage; - }, - }; - discoverTests(request.include ?? gatherTestItems(ctrl.items)).then(runTestQueue); }; diff --git a/test-provider-sample/vscode.proposed.testCoverage.d.ts b/test-provider-sample/vscode.proposed.testCoverage.d.ts index 7ed26276..ec855c7d 100644 --- a/test-provider-sample/vscode.proposed.testCoverage.d.ts +++ b/test-provider-sample/vscode.proposed.testCoverage.d.ts @@ -175,6 +175,11 @@ declare module 'vscode' { * Contains coverage information for a function or method. */ export class FunctionCoverage { + /** + * Name of the function or method. + */ + name: string; + /** * The number of times this function was executed. If zero, the * function will be marked as un-covered. @@ -190,7 +195,7 @@ declare module 'vscode' { * @param executionCount The number of times this function was executed. * @param location The function position. */ - constructor(executionCount: number, location: Position | Range); + constructor(name: string, executionCount: number, location: Position | Range); } export type DetailedCoverage = StatementCoverage | FunctionCoverage;