typescript - 无法生成 Jest 覆盖率报告

标签 typescript testing jestjs next.js swc-compiler

我正在使用 Typescript 开发 Next.js 项目,目前正在使用 SWC 编译器。结果,我正在使用 @swc/jest为了我的测试。我所有的测试都通过了,但覆盖率报告总是空着。这是我的 jest.config.js 的样子:

module.exports = {
  'roots': ['<rootDir>/../src'],
  'moduleDirectories': ['node_modules', 'src'],
  'setupFilesAfterEnv': ['<rootDir>/setup-tests.js'],
  'coverageDirectory': '<rootDir>/../coverage',
  'verbose': true,
  'collectCoverage': true,
  'transform': {
    '^.+\\.(t|j)sx?$': [
      '@swc/jest',
      {
        'jsc': {
          target: 'es2021',
        },
        'sourceMaps': true,
      },
    ],
  },
  'collectCoverageFrom': [
    '<rootDir>/../src/**.{ts,js,tsx,jsx}',
    '!**/node_modules/**',
  ],
}

我的文件结构如下:

.
├── coverage
├── jest
│   ├── jest.config.js
│   ├── setup-tests.js
├── src/
├── tsconfig.json

输出看起来像这样:

----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
----------|---------|----------|---------|---------|-------------------
All files |       0 |        0 |       0 |       0 |                   
----------|---------|----------|---------|---------|-------------------

Test Suites: 11 passed, 11 total
Tests:       25 passed, 25 total
Snapshots:   0 total
Time:        1.307 s
Ran all test suites.

我创建了一个 issue在 @swc/jest 上,但我不确定这是他们的问题还是其他问题,所以我想我也会在这里问。

最佳答案

在我看来,您的 jest 配置中的“collectCoverageFrom”值格式不正确。你会使用 double asterisks ** 递归所有目录和子目录,单个 * 用作通配符(无论是目录名还是文件名)。

抓取所有目录下的所有文件(不管有多少个子目录)是:

src/**/*

如果你只想要所有目录下的js和ts文件(不管有多少个子目录):

src/**/*.{js,ts}

如果你所有的文件都只在src目录下:

src/*

你在你的配置中有什么,匹配一个以js、ts等结尾的目录

关于typescript - 无法生成 Jest 覆盖率报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70658273/

相关文章:

javascript - 使用 React Native 和 Contentful 进行 Jest 测试

typescript - "Unexpected token ."运行 mocha 时使用可选链接 "?."语法

javascript - 是否可以对 Redux Toolkit Slice 的状态使用 typescript 联合类型?

spring - 测试 Maven 模块中的 FileNotFoundException

ios - 如何对iOS应用进行自动化测试?

javascript - NPM 包模块中的 Jest 单元测试失败并显示 `ReferenceError`

javascript - 使用 Jest 测试 React Component 函数

node.js - 从 Cloud Functions Realtime Database 中的子引用获取父 Node 的原始值 "val()"数据

typescript - create-react-app --template typescript — 是否可以暂时禁用类型检查?

javascript - 如何以编程方式触发 Twitter 意图事件?