vscode jest 扩展无法正常工作

Posted

技术标签:

【中文标题】vscode jest 扩展无法正常工作【英文标题】:vscode jest extension doesn't work properly 【发布时间】:2018-07-30 22:29:05 【问题描述】:

我正在使用 VSCode 并安装了 extension: "Jest" 以获得更好的 jest-testing-enviroment。

在扩展程序的说明中,我看到我们为 Jest 的命令获得了很好的智能感知支持

问题:

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

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

我的问题:

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

【问题讨论】:

你试过this吗? If one of these applies, and you're not seeing the "Jest" in the bottom bar, run the command Open Developer Tools and see if something has crashed, we'd love to know what that is, and ideally a project we can run against. @robi 我看到了这个,但不确定我在哪里运行这个命令?我在 Windows 10 上运行它,只需在终端中输入它就不会工作。我也尝试在 ***vscode 命令面板中运行,但它没有工作 如果你仍然热衷于运行 vscode-jest,让我们在 repo 上重新开始这个对话。我们需要更多的贡献者来参与这个项目。 github.com/jest-community/vscode-jest/issues 【参考方案1】:

解决方案:

当我了解我的文件夹结构是扩展程序无法正常工作的原因后,我开始使用 VSCode 的 Workspaces

解释:

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

在不设置 jest.config.js 文件的情况下使用 Jest 时,您会将 rootDir 设为默认值(即 package.json 所在的文件夹)。

附言

从我到现在的经验来看,vscode-jest 扩展 不是那么稳定,并且仍然存在一些错误。所以就我而言,我决定暂时禁用它。

【讨论】:

【参考方案2】:

强烈建议改用jest runner 扩展名。

演示:

【讨论】:

请不要只发布一些工具或库作为答案。至少在答案本身中展示how it solves the problem。【参考方案3】:

在全新安装扩展程序时,它开箱后对我来说也无法正常工作。在 WSL2 终端上运行 npm run test 有效,但扩展没有。

我的文件夹结构

root
__tests__
         __testThis__
                     featureA.js    <-- jest tests
         __andThis__
                    feature1.js     <--
                    feature2.js     <--
testThis.js
andThis.js
package.json

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

但它在做了 ff 之后终于起作用了。

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

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

(2) 找不到笑话命令

确保 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)"
],

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

在 .vscode/settings.json 中关闭 jest autoRun
"jest.autoRun": "off",
点击 jest 扩展的 侧边栏图标(锥形瓶)仅在需要时运行测试

即便如此,扩展程序中的所有内容也并非都能完美运行(例如,调试器仍然无法为我工作),但 我能够使用扩展程序运行单个测试(或同时运行所有测试) .

希望这能有所帮助!

【讨论】:

【参考方案4】:

我遇到了同样的问题。我刚刚在我的 monorepo 的根目录下放置了一个jest.config.js,扩展程序就会启动。至少对我而言,问题在于它一直在寻找从根路径开始的文件,但从未找到它。

【讨论】:

以上是关于vscode jest 扩展无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

VSCode prettier/vue 格式设置无法正常工作

史上最全VSCode插件,怪不得写代码头疼,VSCod安装与配置(适合小白)

史上最全VSCode插件,怪不得写代码头疼,VSCod安装与配置(适合小白)

打字稿在vscode中找不到名称'test'

VSCode 新手:通过 Docker 进行远程 Jest/Node 调试

杂记2--ubuntu的vscod直接调试编写.cpp