mirror of
https://github.com/microsoft/vscode-extension-samples.git
synced 2026-04-27 16:55:44 +08:00
test: adopt refresh action
This commit is contained in:
2
test-provider-sample/.gitignore
vendored
2
test-provider-sample/.gitignore
vendored
@ -4,4 +4,4 @@ node_modules
|
||||
*.vsix
|
||||
|
||||
/vscode.d.ts
|
||||
/vscode.proposed.testCoverage.d.ts
|
||||
/vscode.proposed.*.d.ts
|
||||
|
||||
6
test-provider-sample/package-lock.json
generated
6
test-provider-sample/package-lock.json
generated
@ -1277,9 +1277,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"vscode-dts": {
|
||||
"version": "0.3.2",
|
||||
"resolved": "https://registry.npmjs.org/vscode-dts/-/vscode-dts-0.3.2.tgz",
|
||||
"integrity": "sha512-vL6p3MYuRgyvztEyK/X+7KH8JqMrqzxSvZZi8e0eMubCj2v0POmypitJ93EcHSkZbULA2mCK6mdp5bZ5Re/bZw==",
|
||||
"version": "0.3.3",
|
||||
"resolved": "https://registry.npmjs.org/vscode-dts/-/vscode-dts-0.3.3.tgz",
|
||||
"integrity": "sha512-JfOsWL0NvfVw0UF9bcTjlv1Onz3Ted7cgpPWKWMnHGB+72t/tn8WFDeKLZO42l2k9KJq/NGS9rFC5gZbyI4FTg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "^1.2.0",
|
||||
|
||||
@ -5,9 +5,9 @@
|
||||
"version": "0.0.1",
|
||||
"publisher": "vscode-samples",
|
||||
"repository": "https://github.com/Microsoft/vscode-extension-samples",
|
||||
"enableProposedApi": true,
|
||||
"enabledApiProposals": [
|
||||
"testCoverage"
|
||||
"testCoverage",
|
||||
"testRefresh"
|
||||
],
|
||||
"engines": {
|
||||
"vscode": "^1.51.0"
|
||||
@ -39,6 +39,6 @@
|
||||
"@typescript-eslint/parser": "^4.16.0",
|
||||
"eslint": "^7.21.0",
|
||||
"typescript": "^4.2.2",
|
||||
"vscode-dts": "^0.3.2"
|
||||
"vscode-dts": "^0.3.3"
|
||||
}
|
||||
}
|
||||
|
||||
@ -85,7 +85,11 @@ export async function activate(context: vscode.ExtensionContext) {
|
||||
|
||||
discoverTests(request.include ?? gatherTestItems(ctrl.items)).then(runTestQueue);
|
||||
};
|
||||
|
||||
|
||||
ctrl.refreshHandler = async () => {
|
||||
await Promise.all(getWorkspaceTestPatterns().map(({ pattern }) => findInitialFiles(ctrl, pattern)));
|
||||
};
|
||||
|
||||
ctrl.createRunProfile('Run Tests', vscode.TestRunProfileKind.Run, runHandler, true);
|
||||
|
||||
ctrl.resolveHandler = async item => {
|
||||
@ -145,13 +149,25 @@ function gatherTestItems(collection: vscode.TestItemCollection) {
|
||||
return items;
|
||||
}
|
||||
|
||||
function startWatchingWorkspace(controller: vscode.TestController) {
|
||||
function getWorkspaceTestPatterns() {
|
||||
if (!vscode.workspace.workspaceFolders) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return vscode.workspace.workspaceFolders.map(workspaceFolder => {
|
||||
const pattern = new vscode.RelativePattern(workspaceFolder, '**/*.md');
|
||||
return vscode.workspace.workspaceFolders.map(workspaceFolder => ({
|
||||
workspaceFolder,
|
||||
pattern: new vscode.RelativePattern(workspaceFolder, '**/*.md'),
|
||||
}));
|
||||
}
|
||||
|
||||
async function findInitialFiles(controller: vscode.TestController, pattern: vscode.GlobPattern) {
|
||||
for (const file of await vscode.workspace.findFiles(pattern)) {
|
||||
getOrCreateFile(controller, file);
|
||||
}
|
||||
}
|
||||
|
||||
function startWatchingWorkspace(controller: vscode.TestController) {
|
||||
return getWorkspaceTestPatterns().map(({ workspaceFolder, pattern }) => {
|
||||
const watcher = vscode.workspace.createFileSystemWatcher(pattern);
|
||||
|
||||
watcher.onDidCreate(uri => getOrCreateFile(controller, uri));
|
||||
@ -163,11 +179,7 @@ function startWatchingWorkspace(controller: vscode.TestController) {
|
||||
});
|
||||
watcher.onDidDelete(uri => controller.items.delete(uri.toString()));
|
||||
|
||||
vscode.workspace.findFiles(pattern).then(files => {
|
||||
for (const file of files) {
|
||||
getOrCreateFile(controller, file);
|
||||
}
|
||||
});
|
||||
findInitialFiles(controller, pattern);
|
||||
|
||||
return watcher;
|
||||
});
|
||||
|
||||
@ -29,7 +29,7 @@ export class TestFile {
|
||||
item.error = undefined;
|
||||
this.updateFromContents(controller, content, item);
|
||||
} catch (e) {
|
||||
item.error = e.stack;
|
||||
item.error = (e as Error).stack;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user