vscode 开玩笑扩展不能正常工作

uee*_*iie 6 jestjs visual-studio-code

我正在使用VSCode并安装了扩展:“ Jest ”以获得更好的玩笑测试环境。

在扩展的说明中,我看到我们为 Jest 的命令提供很好的智能感知支持

问题:

  1. 我没有在底部栏上看到“Jest”图标,这意味着 ext 无法正常工作。

  2. 我仍然没有得到对 jest 命令的智能感知支持

我的问题:

有没有人遇到过这个问题并找到正确配置它的方法?

uee*_*iie 14

解决方案:

一旦我了解我的文件夹结构是扩展无法正常工作的原因,我就开始使用 VSCode 的Workspaces

解释:

使用工作区时,您可以在一个文件夹中包含多个项目。每个项目都将被视为一个根项目。工作区允许您在同一文件夹中拥有多个根项目(这实际上解决了我的问题)。

当使用 Jest 而不设置jest.config.js文件时,您将获得rootDir默认值(即文件所在的文件夹package.json)。

聚苯乙烯

从我到目前为止的经历来看,vscode-jest 扩展不太稳定,仍然存在一些错误。因此,就我而言,我决定暂时禁用它。


joe*_*joe 13

强烈建议使用jest runner扩展。

演示:

]

  • 请不要仅仅发布一些工具或库作为答案。至少在答案本身中证明[它如何解决问题](http://meta.stackoverflow.com/a/251605)。 (19认同)

sum*_*404 6

在全新安装扩展时,它开箱即用也无法正常工作。在 WSL2 终端上运行npm run test 可以运行,但扩展却不能运行。

我的文件夹结构

root
__tests__
         __testThis__
                     featureA.js    <-- jest tests
         __andThis__
                    feature1.js     <--
                    feature2.js     <--
testThis.js
andThis.js
package.json
Run Code Online (Sandbox Code Playgroud)

我的测试脚本最初位于"test": "jest --watchAll --maxWorkers=1", 我的 package.json 上。

在做了ff之后终于成功了。:

(1) 底部状态栏未出现 Jest 图标

  • 在 .vscode/settings.json 中指定 jest.rootPath。文档对此进行了更多详细说明
  • 我将我的设置为“”(空),因为我使用 testMatch 来查找我的测试。
    "jest.rootPath": "",
    
    Run Code Online (Sandbox Code Playgroud)

(2) jest命令未找到

  • 确保jest 和 jest-cli 安装在 jest 扩展使用的 shell 中
  • 我一直在使用 WSL2 运行测试,没有出现任何问题(没有扩展名),但在扩展名中遇到了“找不到 jest 命令”。
  • 在 Git Bash 上安装 jest 和 jest-cli 后,这不再是问题。

(3) 扩展运行一瞬间,然后“watch-tests”意外结束

  • 我没有使用 Jest 扩展向导,而是jest --init在项目的根目录下运行来创建 jest.config.js。这会将测试脚本更新为"test": "jest"-- 我将其保留为原样。
  • 在生成的 jest.config.js 中启用 testMatch,这样 jest 就知道在哪里寻找测试
    testMatch: [
       "**/__tests__/**/*.[jt]s?(x)",
       "**/?(*.)+(spec|test).[tj]s?(x)"
    ],
    
    Run Code Online (Sandbox Code Playgroud)

(4) 测试最终运行,但它们重复运行,直到 CPU 使用率 --> ~90%

即使这样,扩展中的所有内容也并非都能完美运行(例如,调试器仍然对我不起作用),但我能够使用扩展运行单个测试(或一次所有测试)

希望这能有所帮助!