Webpack istanbul-instrumenter-loader不会加载所有源文件

时间:2019-10-03 16:57:13

标签: typescript webpack code-coverage istanbul

我有一个很大的项目,但是目前很少进行测试。覆盖范围惊人地高。覆盖率高的原因是,仅针对具有测试的文件才报告覆盖率!

随着我添加更多测试,我的覆盖范围实际上下降了。当我添加一个新的测试文件时,它将引入更多的源,并且语句/分支/函数/行的总数上升。

在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文件包含了我想要覆盖的所有来源,我故意在覆盖率报告中未包含的文件之一上导致了编译错误,并确认此错误出现在测试汇编。

0 个答案:

没有答案