uri*_*rig 7 unit-testing npm jestjs
我正在尝试使用 Jest 获取单个 Vue 组件的代码覆盖率数字。
假设我的组件是/var/www/html/path/to/Component.vue,其相应的单元测试文件是/var/www/html/path/to/tests/unit/Component.spec.js
在我的package.json我有以下脚本:
"scripts": {
"test": "jest --no-cache"
}
Run Code Online (Sandbox Code Playgroud)
当我运行 Jest 以仅覆盖我的组件时,如下所示:
"scripts": {
"test": "jest --no-cache"
}
Run Code Online (Sandbox Code Playgroud)
我得到零代码覆盖率数字:
=============================== Coverage summary ===============================
Statements : Unknown% ( 0/0 )
Branches : Unknown% ( 0/0 )
Functions : Unknown% ( 0/0 )
Lines : Unknown% ( 0/0 )
================================================================================
Test Suites: 1 passed, 1 total
Tests: 3 passed, 3 total
Snapshots: 0 total
Time: 4.019s
Run Code Online (Sandbox Code Playgroud)
为什么我会得到这个结果,我怎样才能通过 npm 从 Jest 获得真实的代码覆盖率统计数据?
我已经找到了问题和解决方法。
在我的package.jsonJest 配置中,它包括:
"jest": {
"rootDir": "./",
}
Run Code Online (Sandbox Code Playgroud)
这意味着 Jest 的根目录是我的 npm 项目目录。在我人为的例子中,这是/var/www/html/path.
为了获得正确的覆盖率值,我从使用绝对路径切换到相对于上述根目录的路径。所以现在对我有用的是:
npm test -- "to/tests/unit/Component.spec.js" "--coverage" "--collectCoverageFrom=/var/to/Component.vue"
Run Code Online (Sandbox Code Playgroud)
collectCoverageFrom在我的项目中不尊重绝对路径仍然很奇怪。
| 归档时间: |
|
| 查看次数: |
4970 次 |
| 最近记录: |