微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么`jest --watchAll` 几乎总是忽略刚刚更改的测试文件?

如何解决为什么`jest --watchAll` 几乎总是忽略刚刚更改的测试文件?

我正在运行 jest --watchAll,每当我更新测试文件时,jest 都会重新运行所有测试除了对于刚刚更新的测试文件大多数 的时间)。例如,假设我有

tests/
  a-test.js
  b-test.js
  c-test.js

运行 jest --watchAll 最初为我提供了全面覆盖:

 PASS  tests/a-test.js
 PASS  tests/b-test.js
 PASS  tests/c-test.js

并且,编辑包中的任何文件除了这三个文件将成功重新运行所有测试。但是,对这三个中的任何一个进行编辑都会完全忽略刚刚编辑的文件运行。例如,如果我编辑 b-test.js,我通常会看到:

 PASS  tests/a-test.js
 PASS  tests/c-test.js

如果恰好启用了覆盖率,则 b-test.js 覆盖的所有文件显示为 0% 的覆盖率。

我在 pixelbook 的 linux 环境中运行它,通过一个纱线脚本目标:

"scripts": [
  ... 
  "test:watch": "jest --watchAll",...
]

Jest 配置:

    "jest": {
        "testRegex": [
            "(tests|use-cases)/.*\\.js$"
        ],"modulefileExtensions": [
            "js","json"
        ],"testEnvironment": "jsdom","testURL": "http://localhost/","collectCoverage": true,"coverageThreshold": {
            "global": {
                "branches": 0,"functions": 0,"lines": 0,"statements": 0
            }
        },"collectCoverageFrom": [
            "lib/**/*.js"
        ],"coveragePathIgnorePatterns": [
            "/node_modules/"
        ]
    },

在没有 --watch--watchAll 的情况下运行似乎每次都能找到所有测试。

可能会发生什么?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。