We have come a full circle on this issue - supporting multiple jest configs for a given workspace. This is common for monorepo projects and projects with multiple test environments, such as unit and integration tests. We implemented monorepo support with vscode multi-root workspaces a few years ago. However, this fell short of addressing multi-test-environment that share the same code base (folder).
This PR addresses this gap by introducing the concept of virtual folders. A virtual folder defines a jest runtime environment, customizable with all resource level settings, such as jestCommanLine, rootPath. Multiple virtual folders can reside in any given vscode workspace folder via jest.virtualFolders. See details documented in the README.md file.
The code change outline:
expand the JestExt to be workspace "agnostic", i.e. it can work with either the actual vscode.WorkspaceFolder or virtualFolder.
update workspace-manager, extension-manager, StatusBar, CoverageCodeLensProvider etc to work with virtual folders.
update DebugConfigurationProvider to append the folder name to the generated configuration names.
adjust the setup wizard to work with virtual folders. (except the monorepo setup, which will ignore virtual folders)
We have come a full circle on this issue - supporting multiple jest configs for a given workspace. This is common for monorepo projects and projects with multiple test environments, such as unit and integration tests. We implemented monorepo support with vscode multi-root workspaces a few years ago. However, this fell short of addressing multi-test-environment that share the same code base (folder).
This PR addresses this gap by introducing the concept of virtual folders. A virtual folder defines a jest runtime environment, customizable with all resource level settings, such as
jestCommanLine
,rootPath
. Multiple virtual folders can reside in any given vscode workspace folder viajest.virtualFolders
. See details documented in the README.md file.The code change outline:
JestExt
to be workspace "agnostic", i.e. it can work with either the actual vscode.WorkspaceFolder or virtualFolder.workspace-manager
,extension-manager
,StatusBar
,CoverageCodeLensProvider
etc to work with virtual folders.DebugConfigurationProvider
to append the folder name to the generated configuration names.resolve #870 resolve #428