VSCode打开两个项目窗口时无法运行Unit Tests的解决咨询
Angular单元测试双VSCode实例运行问题解决建议
检查VSCode扩展的工作区隔离设置
- 打开设置(快捷键
Ctrl+,/Cmd+,),搜索Testing: Enable Workspace Isolation,确认该选项是否开启。如果开着,双实例大概率会共享测试运行器资源导致冲突,关掉后重启VSCode再试试。 - 另外看你用的是Jest还是Karma,对应检查它们的VSCode扩展设置,确保每个实例的配置是独立的,不要跨工作区共享。
- 打开设置(快捷键
对比验证工作项目的测试配置文件
- 把工作项目和参考项目的
angular.json里test节点的配置对比一遍,重点看builder版本、options里的polyfills路径、tsConfig路径有没有错,依赖有没有漏装。 - 要是用Jest就查
jest.config.js,用Karma就查karma.conf.js,确认端口号、测试文件匹配规则和参考项目一致,端口被占的话肯定会弹阻止窗口。
- 把工作项目和参考项目的
清理缓存重开
- 把所有VSCode实例都关了,删掉项目根目录下的
node_modules/.cache(Jest缓存)或者coverage文件夹,然后重新跑npm install或yarn install。 - 清除VSCode工作区缓存:按
Ctrl+Shift+P/Cmd+Shift+P,输入Developer: Reload Window重载窗口,或者直接删掉~/.vscode/extensions里对应测试扩展的缓存文件夹(记得先备份)。
- 把所有VSCode实例都关了,删掉项目根目录下的
换个方式启动VSCode双实例
- 别双击文件夹开第二个实例,先在第一个实例里按
Ctrl+Shift+N/Cmd+Shift+N开新窗口,再通过File > Open Folder选第二个项目,这样能减少资源冲突概率。 - 还可以给每个实例指定独立的用户数据目录,启动时加参数:Windows用
--user-data-dir="C:/temp/vscode-workspace1",Mac/Linux用--user-data-dir="/tmp/vscode-workspace1",强制隔离两个实例的配置。
- 别双击文件夹开第二个实例,先在第一个实例里按
盯着弹窗提示找原因
- 工作项目弹阻止窗口时,仔细看提示内容,比如是端口占用、权限不够还是依赖缺了,针对性解决:
- 端口占用的话,改测试框架配置文件,把默认端口(比如Karma的9876)换成别的未被占用的端口。
- 权限问题的话,试试用管理员身份开VSCode,或者检查项目文件夹的读写权限。
- 工作项目弹阻止窗口时,仔细看提示内容,比如是端口占用、权限不够还是依赖缺了,针对性解决:
内容的提问来源于stack exchange,提问作者edjm
相关产品推荐
相关产品推荐

