gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 04:37:51 24 4
gpt4 key购买 nike

我正在使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com