vue.js - 忽略 VueJS 组件文件的代码覆盖率,尽管这些组件的测试已成功运行
问题描述
我正在尝试获取内置于 VueJS 的前端应用程序的代码覆盖率结果。显然,如果我创建一个组件然后为该组件编写一个测试(快照测试),IDE(WebStorm)会忽略该文件。
我做了一些研究,发现代码覆盖率只列出了包含可执行 JavaScript 的文件。就我而言,如果我创建一个组件并像这样从组件返回:
<template>
...
</template>
<script>
export default {
name: 'CustomButton',
props: ['someText'],
data() {
return {};
},
};
</script>
它将工作并显示100% lines covered
在 IDE 中。
如果我删除data
<template>
...
</template>
<script>
export default {
name: 'CustomButton',
props: ['someText'],
};
</script>
然后测试被覆盖忽略,即使快照测试成功完成。
如前所述,我正在使用 Jest 运行我的所有测试,使用以下配置:
"jest": {
"setupFiles": [
"jest-localstorage-mock"
],
"moduleFileExtensions": [
"js",
"jsx",
"json",
"vue"
],
"transform": {
"^.+\\.vue$": "vue-jest",
".+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$": "jest-transform-stub",
"^.+\\.jsx?$": "babel-jest"
},
"moduleNameMapper": {
"^@/(.*)$": "<rootDir>/src/$1"
},
"snapshotSerializers": [
"jest-serializer-vue"
],
"testMatch": [
"**/tests/unit/**/*.test.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)"
],
"collectCoverageFrom": [
"**/src/**"
],
"testURL": "http://localhost/",
"transformIgnorePatterns": [
"node_modules/(?!vue-spinner|vue-quill-editor)"
]
}
除了这个 hacky 解决方案之外,还有更优雅的方法来实现这一点吗?
非常感谢!
解决方案
这个问题在WEB-38769被跟踪,请投票支持它以得到任何进展的通知
推荐阅读
- javascript - 隐藏滤芯
- flutter - 强制颤振的 TabBarView 适应其内容
- c# - 在c#中制作数据透视表的行数限制
- flutter - 使用 ImagePicker 从图库中保存 Flutter 图像
- reactjs - 我们如何自动将逗号添加到在 SPFx 中输入的数字反应流畅的文本字段。例如:1,000,000,000
- mysql - 将 mm-dd-yyyy 中的 varchar 日期列转换为 Date 数据类型的列
- transactions - 如何在 Cassandra 中实现跨多个表更新的锁定,从而实现隔离并避免脏读问题
- javascript - NodeJs多维数组 - 无法读取未定义的属性
- html - 当我尝试更改颜色取决于计数时,它显示错误 TypeError: Cannot read property 'style' of null
- css - 在 Blazor(服务器)应用程序中加载和更改时淡化图像