testing: initial implementation of continuous run (#170770)

First pass of https://github.com/microsoft/vscode/issues/134941

The UI is pretty minimal so far, just a new icon (though I have a
proposal for some changes in the UX channel.)

If there's more that one profile that supports continuous test runs,
then we open a quickpick and ask the user which ones they want to use.

The data flow is then fairly simple. We call the `profile.runHandler`
with the appropriate request, but just doesn't "track" it like we do for
normal test runs. Then, any `createTestRun` calls are tracked as
ordinary extension-triggered test runs.

Currently we don't do anything to associate these new test runs with the
fact that they were from a specific auto-run request, but that could be
added if need to in the future.
This commit is contained in:
Connor Peet
2023-01-08 10:16:51 -08:00
committed by GitHub
parent be54d2be91
commit 638db26797
22 changed files with 438 additions and 45 deletions

View File

@@ -384,7 +384,7 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
// namespace: tests
const tests: typeof vscode.tests = {
createTestController(provider, label, refreshHandler?: (token: vscode.CancellationToken) => Thenable<void> | void) {
return extHostTesting.createTestController(provider, label, refreshHandler);
return extHostTesting.createTestController(extension, provider, label, refreshHandler);
},
createTestObserver() {
checkProposedApiEnabled(extension, 'testObserver');
@@ -1370,6 +1370,7 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
LinkedEditingRanges: extHostTypes.LinkedEditingRanges,
TestResultState: extHostTypes.TestResultState,
TestRunRequest: extHostTypes.TestRunRequest,
TestRunRequest2: extHostTypes.TestRunRequest2,
TestMessage: extHostTypes.TestMessage,
TestTag: extHostTypes.TestTag,
TestRunProfileKind: extHostTypes.TestRunProfileKind,