对 create-react-app 中所有提交的文件进行笑话覆盖率报告

问题描述 投票:0回答:2

在我的 create-react-app 中为所有提交的文件生成 Jest 覆盖率报告时遇到困难。

最初,代码覆盖率按预期生成,但是我的环境发生了一些变化,现在只有自上次提交以来更改的文件才显示覆盖率。

我看到有很多其他帖子讨论这个问题,但我无法自己解决。

package.json:

{...
    "devDependencies": {
        "@testing-library/jest-dom": "^5.11.9",
        "@testing-library/react": "^11.2.5",
        "@testing-library/user-event": "^12.6.3",
        "react-test-renderer": "^17.0.1"
    },
    "jest": {
        "testMatch": [ "**/tests/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).[jt]s?(x)" ],
        "coverageReporters": ["json","html","lcov", "text"]
    }
...}

项目结构:

|
+--node_modules
+--src
    |
    + __tests__
    + App.js
- package.json

运行命令

npm test -- --coverage
会产生以下输出:

No tests found related to files changed since last commit.
Press `a` to run all tests, or run Jest with `--watchAll`.
----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
----------|---------|----------|---------|---------|-------------------
All files |       0 |        0 |       0 |       0 |                   
----------|---------|----------|---------|---------|-------------------

Watch Usage
 › Press a to run all tests.
 › Press f to run only failed tests.
 › Press q to quit watch mode.
 › Press p to filter by a filename regex pattern.
 › Press t to filter by a test name regex pattern.
 › Press Enter to trigger a test run.
jestjs create-react-app
2个回答
4
投票

您处于监视模式,在对文件子集运行覆盖时存在已知问题。尝试使用

--watchAll
以便运行所有测试并生成覆盖率。

npm test -- --coverage --watchAll

为此目的,我喜欢在我的

package.json
中制作一个名为
coverage
的特殊 npm 运行脚本。


1
投票

您需要运行包含

react-scripts test --coverage
的脚本
a
才能运行所有测试。

像这样:

react-scripts test --coverage a

© www.soinside.com 2019 - 2024. All rights reserved.