@codingame/monaco-vscode-testing-service-override 30.0.0 → 31.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +4 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/callStackWidget.js +5 -5
- package/vscode/src/vs/workbench/contrib/testing/browser/codeCoverageDecorations.js +46 -27
- package/vscode/src/vs/workbench/contrib/testing/browser/codeCoverageDisplayUtils.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/testing/browser/codeCoverageDisplayUtils.js +15 -6
- package/vscode/src/vs/workbench/contrib/testing/browser/icons.js +29 -29
- package/vscode/src/vs/workbench/contrib/testing/browser/testCoverageBars.js +3 -3
- package/vscode/src/vs/workbench/contrib/testing/browser/testCoverageView.js +16 -16
- package/vscode/src/vs/workbench/contrib/testing/browser/testExplorerActions.js +72 -72
- package/vscode/src/vs/workbench/contrib/testing/browser/testResultsView/testResultsOutput.js +5 -5
- package/vscode/src/vs/workbench/contrib/testing/browser/testResultsView/testResultsTree.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/testing/browser/testResultsView/testResultsTree.js +41 -24
- package/vscode/src/vs/workbench/contrib/testing/browser/testResultsView/testResultsViewContent.js +3 -3
- package/vscode/src/vs/workbench/contrib/testing/browser/testing.contribution.js +8 -8
- package/vscode/src/vs/workbench/contrib/testing/browser/testingConfigurationUi.js +2 -2
- package/vscode/src/vs/workbench/contrib/testing/browser/testingDecorations.js +27 -22
- package/vscode/src/vs/workbench/contrib/testing/browser/testingExplorerFilter.js +11 -11
- package/vscode/src/vs/workbench/contrib/testing/browser/testingExplorerView.js +19 -17
- package/vscode/src/vs/workbench/contrib/testing/browser/testingOutputPeek.js +14 -11
- package/vscode/src/vs/workbench/contrib/testing/browser/testingViewPaneContainer.js +1 -1
- package/vscode/src/vs/workbench/contrib/testing/browser/theme.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/testing/browser/theme.js +45 -33
- package/vscode/src/vs/workbench/contrib/testing/common/configuration.d.ts +2 -0
- package/vscode/src/vs/workbench/contrib/testing/common/configuration.js +30 -24
- package/vscode/src/vs/workbench/contrib/testing/common/testExplorerFilterState.js +7 -1
- package/vscode/src/vs/workbench/contrib/testing/common/testServiceImpl.js +4 -4
- package/vscode/src/vs/workbench/contrib/testing/common/testingChatAgentTool.d.ts +11 -4
- package/vscode/src/vs/workbench/contrib/testing/common/testingChatAgentTool.js +75 -17
- package/vscode/src/vs/workbench/contrib/testing/common/testingContentProvider.js +1 -1
- package/vscode/src/vs/workbench/contrib/testing/common/testingContextKeys.js +31 -31
- package/vscode/src/vs/workbench/contrib/testing/common/testingProgressMessages.js +5 -5
|
@@ -9,7 +9,6 @@ import { isAbsolute, basename } from '@codingame/monaco-vscode-api/vscode/vs/bas
|
|
|
9
9
|
import { isDefined } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
|
|
10
10
|
import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
|
|
11
11
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
12
|
-
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
13
12
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
14
13
|
import { IUriIdentityService } from '@codingame/monaco-vscode-api/vscode/vs/platform/uriIdentity/common/uriIdentity.service';
|
|
15
14
|
import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
|
|
@@ -31,15 +30,17 @@ let TestingChatAgentToolContribution = class TestingChatAgentToolContribution ex
|
|
|
31
30
|
static {
|
|
32
31
|
this.ID = "workbench.contrib.testing.chatAgentTool";
|
|
33
32
|
}
|
|
34
|
-
constructor(instantiationService, toolsService
|
|
33
|
+
constructor(instantiationService, toolsService) {
|
|
35
34
|
super();
|
|
36
35
|
const runTestsTool = instantiationService.createInstance(RunTestTool);
|
|
37
36
|
this._register(toolsService.registerTool(RunTestTool.DEFINITION, runTestsTool));
|
|
38
37
|
this._register(toolsService.executeToolSet.addTool(RunTestTool.DEFINITION));
|
|
39
|
-
|
|
38
|
+
const testFailureTool = instantiationService.createInstance(TestFailureTool);
|
|
39
|
+
this._register(toolsService.registerTool(TestFailureTool.DEFINITION, testFailureTool));
|
|
40
|
+
this._register(toolsService.executeToolSet.addTool(TestFailureTool.DEFINITION));
|
|
40
41
|
}
|
|
41
42
|
};
|
|
42
|
-
TestingChatAgentToolContribution = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, ILanguageModelToolsService))
|
|
43
|
+
TestingChatAgentToolContribution = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, ILanguageModelToolsService))], TestingChatAgentToolContribution));
|
|
43
44
|
let RunTestTool = class RunTestTool {
|
|
44
45
|
static {
|
|
45
46
|
this.ID = "runTests";
|
|
@@ -84,7 +85,7 @@ let RunTestTool = class RunTestTool {
|
|
|
84
85
|
}
|
|
85
86
|
}
|
|
86
87
|
},
|
|
87
|
-
userDescription: ( localize(
|
|
88
|
+
userDescription: ( localize(14821, "Run unit tests (optionally with coverage)")),
|
|
88
89
|
source: ToolDataSource.Internal,
|
|
89
90
|
tags: [
|
|
90
91
|
"vscode_editing_with_tests",
|
|
@@ -93,7 +94,7 @@ let RunTestTool = class RunTestTool {
|
|
|
93
94
|
"enable_other_tool_copilot_findFiles",
|
|
94
95
|
"enable_other_tool_copilot_runTests",
|
|
95
96
|
"enable_other_tool_copilot_runTestsWithCoverage",
|
|
96
|
-
"
|
|
97
|
+
"enable_other_tool_testFailure"
|
|
97
98
|
]
|
|
98
99
|
};
|
|
99
100
|
}
|
|
@@ -123,11 +124,11 @@ let RunTestTool = class RunTestTool {
|
|
|
123
124
|
kind: "text",
|
|
124
125
|
value: "No tests found in the files. Ensure the correct absolute paths are passed to the tool."
|
|
125
126
|
}],
|
|
126
|
-
toolResultError: ( localize(
|
|
127
|
+
toolResultError: ( localize(14822, "No tests found in the files"))
|
|
127
128
|
};
|
|
128
129
|
}
|
|
129
130
|
progress.report({
|
|
130
|
-
message: ( localize(
|
|
131
|
+
message: ( localize(14823, "Starting test run..."))
|
|
131
132
|
});
|
|
132
133
|
if (group === TestRunProfileBitset.Coverage) {
|
|
133
134
|
if (!( testCases.some(
|
|
@@ -144,7 +145,7 @@ let RunTestTool = class RunTestTool {
|
|
|
144
145
|
value: "No test run was started. Instruct the user to ensure their test runner is correctly configured"
|
|
145
146
|
}],
|
|
146
147
|
toolResultError: ( localize(
|
|
147
|
-
|
|
148
|
+
14824,
|
|
148
149
|
"No test run was started. This may be an issue with your test runner or extension."
|
|
149
150
|
))
|
|
150
151
|
};
|
|
@@ -155,9 +156,9 @@ let RunTestTool = class RunTestTool {
|
|
|
155
156
|
return {
|
|
156
157
|
content: [{
|
|
157
158
|
kind: "text",
|
|
158
|
-
value: ( localize(
|
|
159
|
+
value: ( localize(14825, "Test run was cancelled."))
|
|
159
160
|
}],
|
|
160
|
-
toolResultMessage: ( localize(
|
|
161
|
+
toolResultMessage: ( localize(14825, "Test run was cancelled."))
|
|
161
162
|
};
|
|
162
163
|
}
|
|
163
164
|
const summary = await buildTestRunSummary(result, mode, coverageFiles);
|
|
@@ -228,7 +229,7 @@ let RunTestTool = class RunTestTool {
|
|
|
228
229
|
return tests;
|
|
229
230
|
}
|
|
230
231
|
progress.report({
|
|
231
|
-
message: ( localize(
|
|
232
|
+
message: ( localize(14826, "Filtering tests..."))
|
|
232
233
|
});
|
|
233
234
|
const testNames = ( params.testNames.map(t => t.toLowerCase().trim()));
|
|
234
235
|
const filtered = [];
|
|
@@ -257,7 +258,7 @@ let RunTestTool = class RunTestTool {
|
|
|
257
258
|
return [...this._testService.collection.rootItems];
|
|
258
259
|
}
|
|
259
260
|
progress.report({
|
|
260
|
-
message: ( localize(
|
|
261
|
+
message: ( localize(14827, "Discovering tests..."))
|
|
261
262
|
});
|
|
262
263
|
const firstWorkspaceFolder = this._workspaceContextService.getWorkspace().folders.at(0)?.uri;
|
|
263
264
|
const uris = ( params.files.map(f => {
|
|
@@ -281,19 +282,76 @@ let RunTestTool = class RunTestTool {
|
|
|
281
282
|
}
|
|
282
283
|
prepareToolInvocation(context, token) {
|
|
283
284
|
const params = context.parameters;
|
|
284
|
-
const title = ( localize(
|
|
285
|
+
const title = ( localize(14828, "Allow test run?"));
|
|
285
286
|
const inFiles = params.files?.map(f => "`" + basename(f) + "`");
|
|
286
287
|
return Promise.resolve({
|
|
287
|
-
invocationMessage: ( localize(
|
|
288
|
+
invocationMessage: ( localize(14829, "Running tests...")),
|
|
288
289
|
confirmationMessages: {
|
|
289
290
|
title,
|
|
290
|
-
message: inFiles?.length ? ( new MarkdownString()).appendMarkdown(( localize(
|
|
291
|
+
message: inFiles?.length ? ( new MarkdownString()).appendMarkdown(( localize(14830, "The model wants to run tests in {0}.", inFiles.join(", ")))) : ( localize(14831, "The model wants to run all tests.")),
|
|
291
292
|
allowAutoConfirm: true
|
|
292
293
|
}
|
|
293
294
|
});
|
|
294
295
|
}
|
|
295
296
|
};
|
|
296
297
|
RunTestTool = ( __decorate([( __param(0, ITestService)), ( __param(1, IUriIdentityService)), ( __param(2, IWorkspaceContextService)), ( __param(3, ITestResultService)), ( __param(4, ITestProfileService))], RunTestTool));
|
|
298
|
+
let TestFailureTool = class TestFailureTool {
|
|
299
|
+
static {
|
|
300
|
+
this.ID = "testFailure";
|
|
301
|
+
}
|
|
302
|
+
static {
|
|
303
|
+
this.DEFINITION = {
|
|
304
|
+
id: this.ID,
|
|
305
|
+
toolReferenceName: "testFailure",
|
|
306
|
+
legacyToolReferenceFullNames: ["copilot_testFailure"],
|
|
307
|
+
when: TestingContextKeys.hasAnyResults,
|
|
308
|
+
displayName: ( localize(14832, "Test failures")),
|
|
309
|
+
modelDescription: "Includes test failure information in the prompt. Use this tool to get the details of test failures from the most recent test run. If there are no failures yet, suggest running tests first.",
|
|
310
|
+
icon: Codicon.beaker,
|
|
311
|
+
inputSchema: {
|
|
312
|
+
type: "object",
|
|
313
|
+
properties: {}
|
|
314
|
+
},
|
|
315
|
+
userDescription: ( localize(14833, "Include test failure information")),
|
|
316
|
+
source: ToolDataSource.Internal,
|
|
317
|
+
tags: [
|
|
318
|
+
"vscode_editing_with_tests",
|
|
319
|
+
"enable_other_tool_copilot_readFile",
|
|
320
|
+
"enable_other_tool_copilot_listDirectory",
|
|
321
|
+
"enable_other_tool_copilot_findFiles",
|
|
322
|
+
"enable_other_tool_copilot_runTests"
|
|
323
|
+
]
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
constructor(_testResultService) {
|
|
327
|
+
this._testResultService = _testResultService;
|
|
328
|
+
}
|
|
329
|
+
async invoke(invocation, countTokens, progress, token) {
|
|
330
|
+
const result = this._testResultService.results.find(r => r.tasks.length > 0);
|
|
331
|
+
if (!result) {
|
|
332
|
+
return {
|
|
333
|
+
content: [{
|
|
334
|
+
kind: "text",
|
|
335
|
+
value: "No test failures were found yet, call the runTests tool to run tests and find failures."
|
|
336
|
+
}]
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
const details = await getFailureDetails(result);
|
|
340
|
+
return {
|
|
341
|
+
content: [{
|
|
342
|
+
kind: "text",
|
|
343
|
+
value: details
|
|
344
|
+
}]
|
|
345
|
+
};
|
|
346
|
+
}
|
|
347
|
+
prepareToolInvocation(context, token) {
|
|
348
|
+
return Promise.resolve({
|
|
349
|
+
invocationMessage: ( localize(14834, "Finding test failures")),
|
|
350
|
+
pastTenseMessage: ( localize(14835, "Found test failures"))
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
};
|
|
354
|
+
TestFailureTool = ( __decorate([( __param(0, ITestResultService))], TestFailureTool));
|
|
297
355
|
async function buildTestRunSummary(result, mode, coverageFiles) {
|
|
298
356
|
const failures = result.counts[TestResultState.Errored] + result.counts[TestResultState.Failed];
|
|
299
357
|
let str = `<summary passed=${result.counts[TestResultState.Passed]} failed=${failures} />\n`;
|
|
@@ -471,4 +529,4 @@ async function getFailureDetails(result) {
|
|
|
471
529
|
return str;
|
|
472
530
|
}
|
|
473
531
|
|
|
474
|
-
export { RunTestTool, TestingChatAgentToolContribution, buildTestRunSummary, getCoverageSummary, getFailureDetails, getFileCoverageDetails, getOverallCoverageSummary, mergeLineRanges };
|
|
532
|
+
export { RunTestTool, TestFailureTool, TestingChatAgentToolContribution, buildTestRunSummary, getCoverageSummary, getFailureDetails, getFileCoverageDetails, getOverallCoverageSummary, mergeLineRanges };
|
|
@@ -59,7 +59,7 @@ let TestingContentProvider = class TestingContentProvider {
|
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
61
61
|
if (!hadContent) {
|
|
62
|
-
append(( localize(
|
|
62
|
+
append(( localize(14836, "The test run did not record any output.")));
|
|
63
63
|
dispose.dispose();
|
|
64
64
|
}
|
|
65
65
|
});
|
|
@@ -10,120 +10,120 @@ var TestingContextKeys;
|
|
|
10
10
|
TestingContextKeys.canRefreshTests = ( new RawContextKey("testing.canRefresh", false, {
|
|
11
11
|
type: "boolean",
|
|
12
12
|
description: ( localize(
|
|
13
|
-
|
|
13
|
+
14837,
|
|
14
14
|
"Indicates whether any test controller has an attached refresh handler."
|
|
15
15
|
))
|
|
16
16
|
}));
|
|
17
17
|
TestingContextKeys.isRefreshingTests = ( new RawContextKey("testing.isRefreshing", false, {
|
|
18
18
|
type: "boolean",
|
|
19
19
|
description: ( localize(
|
|
20
|
-
|
|
20
|
+
14838,
|
|
21
21
|
"Indicates whether any test controller is currently refreshing tests."
|
|
22
22
|
))
|
|
23
23
|
}));
|
|
24
24
|
TestingContextKeys.isContinuousModeOn = ( new RawContextKey("testing.isContinuousModeOn", false, {
|
|
25
25
|
type: "boolean",
|
|
26
|
-
description: ( localize(
|
|
26
|
+
description: ( localize(14839, "Indicates whether continuous test mode is on."))
|
|
27
27
|
}));
|
|
28
28
|
TestingContextKeys.hasDebuggableTests = ( new RawContextKey("testing.hasDebuggableTests", false, {
|
|
29
29
|
type: "boolean",
|
|
30
30
|
description: ( localize(
|
|
31
|
-
|
|
31
|
+
14840,
|
|
32
32
|
"Indicates whether any test controller has registered a debug configuration"
|
|
33
33
|
))
|
|
34
34
|
}));
|
|
35
35
|
TestingContextKeys.hasRunnableTests = ( new RawContextKey("testing.hasRunnableTests", false, {
|
|
36
36
|
type: "boolean",
|
|
37
37
|
description: ( localize(
|
|
38
|
-
|
|
38
|
+
14841,
|
|
39
39
|
"Indicates whether any test controller has registered a run configuration"
|
|
40
40
|
))
|
|
41
41
|
}));
|
|
42
42
|
TestingContextKeys.hasCoverableTests = ( new RawContextKey("testing.hasCoverableTests", false, {
|
|
43
43
|
type: "boolean",
|
|
44
44
|
description: ( localize(
|
|
45
|
-
|
|
45
|
+
14842,
|
|
46
46
|
"Indicates whether any test controller has registered a coverage configuration"
|
|
47
47
|
))
|
|
48
48
|
}));
|
|
49
49
|
TestingContextKeys.hasNonDefaultProfile = ( new RawContextKey("testing.hasNonDefaultProfile", false, {
|
|
50
50
|
type: "boolean",
|
|
51
51
|
description: ( localize(
|
|
52
|
-
|
|
52
|
+
14843,
|
|
53
53
|
"Indicates whether any test controller has registered a non-default configuration"
|
|
54
54
|
))
|
|
55
55
|
}));
|
|
56
56
|
TestingContextKeys.hasConfigurableProfile = ( new RawContextKey("testing.hasConfigurableProfile", false, {
|
|
57
57
|
type: "boolean",
|
|
58
|
-
description: ( localize(
|
|
58
|
+
description: ( localize(14844, "Indicates whether any test configuration can be configured"))
|
|
59
59
|
}));
|
|
60
60
|
TestingContextKeys.supportsContinuousRun = ( new RawContextKey("testing.supportsContinuousRun", false, {
|
|
61
61
|
type: "boolean",
|
|
62
|
-
description: ( localize(
|
|
62
|
+
description: ( localize(14845, "Indicates whether continuous test running is supported"))
|
|
63
63
|
}));
|
|
64
64
|
TestingContextKeys.isParentRunningContinuously = ( new RawContextKey("testing.isParentRunningContinuously", false, {
|
|
65
65
|
type: "boolean",
|
|
66
66
|
description: ( localize(
|
|
67
|
-
|
|
67
|
+
14846,
|
|
68
68
|
"Indicates whether the parent of a test is continuously running, set in the menu context of test items"
|
|
69
69
|
))
|
|
70
70
|
}));
|
|
71
71
|
TestingContextKeys.activeEditorHasTests = ( new RawContextKey("testing.activeEditorHasTests", false, {
|
|
72
72
|
type: "boolean",
|
|
73
|
-
description: ( localize(
|
|
73
|
+
description: ( localize(14847, "Indicates whether any tests are present in the current editor"))
|
|
74
74
|
}));
|
|
75
75
|
TestingContextKeys.cursorInsideTestRange = ( new RawContextKey("testing.cursorInsideTestRange", false, {
|
|
76
76
|
type: "boolean",
|
|
77
|
-
description: ( localize(
|
|
77
|
+
description: ( localize(14848, "Whether the cursor is currently inside a test range"))
|
|
78
78
|
}));
|
|
79
79
|
TestingContextKeys.isTestCoverageOpen = ( new RawContextKey("testing.isTestCoverageOpen", false, {
|
|
80
80
|
type: "boolean",
|
|
81
|
-
description: ( localize(
|
|
81
|
+
description: ( localize(14849, "Indicates whether a test coverage report is open"))
|
|
82
82
|
}));
|
|
83
83
|
TestingContextKeys.hasCoverageInFile = ( new RawContextKey("testing.hasCoverageInFile", false, {
|
|
84
84
|
type: "boolean",
|
|
85
|
-
description: ( localize(
|
|
85
|
+
description: ( localize(14850, "Indicates coverage has been reported in the curent editor."))
|
|
86
86
|
}));
|
|
87
87
|
TestingContextKeys.hasPerTestCoverage = ( new RawContextKey("testing.hasPerTestCoverage", false, {
|
|
88
88
|
type: "boolean",
|
|
89
|
-
description: ( localize(
|
|
89
|
+
description: ( localize(14851, "Indicates whether per-test coverage is available"))
|
|
90
90
|
}));
|
|
91
91
|
TestingContextKeys.hasInlineCoverageDetails = ( new RawContextKey("testing.hasInlineCoverageDetails", false, {
|
|
92
92
|
type: "boolean",
|
|
93
93
|
description: ( localize(
|
|
94
|
-
|
|
94
|
+
14852,
|
|
95
95
|
"Indicates whether detailed per-line coverage is available for inline display"
|
|
96
96
|
))
|
|
97
97
|
}));
|
|
98
98
|
TestingContextKeys.isCoverageFilteredToTest = ( new RawContextKey("testing.isCoverageFilteredToTest", false, {
|
|
99
99
|
type: "boolean",
|
|
100
|
-
description: ( localize(
|
|
100
|
+
description: ( localize(14853, "Indicates whether coverage has been filterd to a single test"))
|
|
101
101
|
}));
|
|
102
102
|
TestingContextKeys.coverageToolbarEnabled = ( new RawContextKey("testing.coverageToolbarEnabled", true, {
|
|
103
103
|
type: "boolean",
|
|
104
|
-
description: ( localize(
|
|
104
|
+
description: ( localize(14854, "Indicates whether the coverage toolbar is enabled"))
|
|
105
105
|
}));
|
|
106
106
|
TestingContextKeys.inlineCoverageEnabled = ( new RawContextKey("testing.inlineCoverageEnabled", false, {
|
|
107
107
|
type: "boolean",
|
|
108
|
-
description: ( localize(
|
|
108
|
+
description: ( localize(14855, "Indicates whether inline coverage is shown"))
|
|
109
109
|
}));
|
|
110
110
|
TestingContextKeys.canGoToRelatedCode = ( new RawContextKey("testing.canGoToRelatedCode", false, {
|
|
111
111
|
type: "boolean",
|
|
112
112
|
description: ( localize(
|
|
113
|
-
|
|
113
|
+
14856,
|
|
114
114
|
"Whether a controller implements a capability to find code related to a test"
|
|
115
115
|
))
|
|
116
116
|
}));
|
|
117
117
|
TestingContextKeys.canGoToRelatedTest = ( new RawContextKey("testing.canGoToRelatedTest", false, {
|
|
118
118
|
type: "boolean",
|
|
119
119
|
description: ( localize(
|
|
120
|
-
|
|
120
|
+
14857,
|
|
121
121
|
"Whether a controller implements a capability to find tests related to code"
|
|
122
122
|
))
|
|
123
123
|
}));
|
|
124
124
|
TestingContextKeys.peekHasStack = ( new RawContextKey("testing.peekHasStack", false, {
|
|
125
125
|
type: "boolean",
|
|
126
|
-
description: ( localize(
|
|
126
|
+
description: ( localize(14858, "Whether the message shown in a peek view has a stack trace"))
|
|
127
127
|
}));
|
|
128
128
|
TestingContextKeys.capabilityToContextKey = {
|
|
129
129
|
[TestRunProfileBitset.Run]: TestingContextKeys.hasRunnableTests,
|
|
@@ -142,54 +142,54 @@ var TestingContextKeys;
|
|
|
142
142
|
TestingContextKeys.peekItemType = ( new RawContextKey("peekItemType", undefined, {
|
|
143
143
|
type: "string",
|
|
144
144
|
description: ( localize(
|
|
145
|
-
|
|
145
|
+
14859,
|
|
146
146
|
"Type of the item in the output peek view. Either a \"test\", \"message\", \"task\", or \"result\"."
|
|
147
147
|
))
|
|
148
148
|
}));
|
|
149
149
|
TestingContextKeys.controllerId = ( new RawContextKey("controllerId", undefined, {
|
|
150
150
|
type: "string",
|
|
151
|
-
description: ( localize(
|
|
151
|
+
description: ( localize(14860, "Controller ID of the current test item"))
|
|
152
152
|
}));
|
|
153
153
|
TestingContextKeys.testItemExtId = ( new RawContextKey("testId", undefined, {
|
|
154
154
|
type: "string",
|
|
155
155
|
description: ( localize(
|
|
156
|
-
|
|
156
|
+
14861,
|
|
157
157
|
"ID of the current test item, set when creating or opening menus on test items"
|
|
158
158
|
))
|
|
159
159
|
}));
|
|
160
160
|
TestingContextKeys.testItemHasUri = ( new RawContextKey("testing.testItemHasUri", false, {
|
|
161
161
|
type: "boolean",
|
|
162
|
-
description: ( localize(
|
|
162
|
+
description: ( localize(14862, "Boolean indicating whether the test item has a URI defined"))
|
|
163
163
|
}));
|
|
164
164
|
TestingContextKeys.testItemIsHidden = ( new RawContextKey("testing.testItemIsHidden", false, {
|
|
165
165
|
type: "boolean",
|
|
166
|
-
description: ( localize(
|
|
166
|
+
description: ( localize(14863, "Boolean indicating whether the test item is hidden"))
|
|
167
167
|
}));
|
|
168
168
|
TestingContextKeys.testMessageContext = ( new RawContextKey("testMessage", undefined, {
|
|
169
169
|
type: "string",
|
|
170
170
|
description: ( localize(
|
|
171
|
-
|
|
171
|
+
14864,
|
|
172
172
|
"Value set in `testMessage.contextValue`, available in editor/content and testing/message/context"
|
|
173
173
|
))
|
|
174
174
|
}));
|
|
175
175
|
TestingContextKeys.testResultOutdated = ( new RawContextKey("testResultOutdated", undefined, {
|
|
176
176
|
type: "boolean",
|
|
177
177
|
description: ( localize(
|
|
178
|
-
|
|
178
|
+
14865,
|
|
179
179
|
"Value available in editor/content and testing/message/context when the result is outdated"
|
|
180
180
|
))
|
|
181
181
|
}));
|
|
182
182
|
TestingContextKeys.testResultState = ( new RawContextKey("testResultState", undefined, {
|
|
183
183
|
type: "string",
|
|
184
184
|
description: ( localize(
|
|
185
|
-
|
|
185
|
+
14866,
|
|
186
186
|
"Value available testing/item/result indicating the state of the item."
|
|
187
187
|
))
|
|
188
188
|
}));
|
|
189
189
|
TestingContextKeys.testProfileContextGroup = ( new RawContextKey("testing.profile.context.group", undefined, {
|
|
190
190
|
type: "string",
|
|
191
191
|
description: ( localize(
|
|
192
|
-
|
|
192
|
+
14867,
|
|
193
193
|
"Type of menu where the configure testing profile submenu exists. Either \"run\", \"debug\", or \"coverage\""
|
|
194
194
|
))
|
|
195
195
|
}));
|
|
@@ -43,10 +43,10 @@ const getTestProgressText = (
|
|
|
43
43
|
}
|
|
44
44
|
if (isRunning) {
|
|
45
45
|
if (runSoFar === 0) {
|
|
46
|
-
return localize(
|
|
46
|
+
return localize(14868, "Running tests...");
|
|
47
47
|
} else if (skipped === 0) {
|
|
48
48
|
return localize(
|
|
49
|
-
|
|
49
|
+
14869,
|
|
50
50
|
"Running tests, {0}/{1} passed ({2}%)",
|
|
51
51
|
passed,
|
|
52
52
|
totalWillBeRun,
|
|
@@ -54,7 +54,7 @@ const getTestProgressText = (
|
|
|
54
54
|
);
|
|
55
55
|
} else {
|
|
56
56
|
return localize(
|
|
57
|
-
|
|
57
|
+
14870,
|
|
58
58
|
"Running tests, {0}/{1} tests passed ({2}%, {3} skipped)",
|
|
59
59
|
passed,
|
|
60
60
|
totalWillBeRun,
|
|
@@ -65,7 +65,7 @@ const getTestProgressText = (
|
|
|
65
65
|
} else {
|
|
66
66
|
if (skipped === 0) {
|
|
67
67
|
return localize(
|
|
68
|
-
|
|
68
|
+
14871,
|
|
69
69
|
"{0}/{1} tests passed ({2}%)",
|
|
70
70
|
passed,
|
|
71
71
|
runSoFar,
|
|
@@ -73,7 +73,7 @@ const getTestProgressText = (
|
|
|
73
73
|
);
|
|
74
74
|
} else {
|
|
75
75
|
return localize(
|
|
76
|
-
|
|
76
|
+
14872,
|
|
77
77
|
"{0}/{1} tests passed ({2}%, {3} skipped)",
|
|
78
78
|
passed,
|
|
79
79
|
runSoFar,
|