How to get extensionContext in vscode extension unit test?

Just came across this question, because I had exactly the same problem.

It looks like you can do the following in a test:

const ext = vscode.extensions.getExtension("publisher.extensionName");

And you can return anything from your activate function, so you could decide to return the extension context (or anything else that you need) there:

export async function activate(
  context: vscode.ExtensionContext
): Promise<vscode.ExtensionContext> {
  // Your activation code...

  return context;
}

And then you can access the context in the test:

const ext = vscode.extensions.getExtension("publisher.extensionName");
const myExtensionContext = await ext.activate();


You find publisher.extensionName information in package.json of the extension:

{
    "publisher": "myself",
    "name": "myextension",
    "displayName": "My Extension",
    "description": "",
    "version": "1.0.0",
  ...