typescript - Webpack istanbul-instrumenter-loader 不加载所有源文件
问题描述
我有一个很大的项目,但目前只有很少的测试。覆盖率高得惊人。覆盖率高的原因是因为覆盖率只报告有测试的文件!
随着我添加更多测试,我的覆盖率实际上下降了。当我添加一个新的测试文件时,它会引入更多的源,并且语句/分支/函数/行总数会增加。
在覆盖率 html 报告中,根本没有列出大量的类。
即使我的测试没有引用它们,我如何在我的覆盖率报告中包含所有源文件?
我花了一些时间研究这个,但我不明白为什么他们没有被报道。
(不幸的是,我无法从我的工作计算机访问 SO,因此我无法直接在此处复制/粘贴任何内容 - 我必须输入示例)
对此感兴趣的主要配置区域似乎是仪器加载器。我的理解是istanbul-instrumenter-loader
向我的 javascript(从 Typescript 转译)添加了额外的代码。然后运行测试并捕获覆盖信息。报告者然后coverage-istanbul
报告捕获的数据。
我的装载机配置:
{
test: /\.ts$/,
use: {
loader: "istanbul-instrumenter-loader",
options: {
esModules: true,
produceSourceMap: true
}
},
enforce: "post",
include: path.resolve("main"), // main is my src folder
exclude: /.spec.ts$/
}
我已经尝试通过将其更改为 glob 或正则表达式来弄乱这里的 include 语句,但我没有尝试改善这种情况。
只是为了确认我的tsconfig.spec.json
文件包含我想要覆盖的所有源,因为我故意在覆盖报告中未包含的文件之一上导致编译错误,并确认此错误出现在测试编译中。
解决方案
推荐阅读
- c++ - 从 Swift 设置 C++ 指针
- javascript - 如何修复 React.js iOS 空白屏幕?
- python - 从表中添加复杂条件的 SQL 查询
- java - 如何为@KafkaListener 编写单元测试?
- c - 消息队列 ic C
- hyperledger-fabric - Hyperledger Fabric - 多个并发交易
- dialogflow-es - 知识在“尝试”中起作用,但代理无法识别意图并检索 $Knowledge.Answer
- oracle - sqlplus 在从 shell 脚本执行时失败,但从终端执行时工作正常
- c# - ScrollIntoView 不会滚动到 DataGrid 中的 SelectedItem
- swift - 无法从连接到 XIB 的 UIView 执行 segue