【发布时间】:2021-05-09 09:24:53
【问题描述】:
在我的 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.
【问题讨论】:
-
你在监视模式下运行它,它不能报告它没有运行的测试的覆盖率。尝试例如
CI=true npm test -- --coverage. -
@jonrsharpe
CI环境变量控制着监视模式以外的其他功能,他们可能需要监视模式。 -
@evelynhathaway 没错,关键是要证明为运行的测试生成了覆盖率。