Karma,覆盖率报告结合 webpack

Karma, coverage report combined with webpack

我设置了 karma 以及正在运行的覆盖工具 - 但由于我也在使用 webpack,覆盖报告使用的是 webpack 创建的捆绑代码。

例如: 我有一个包含外部库的 Typescript 文件,因此为了使该文件 运行 它需要 webpack。 Webpack 然后将该文件包含到已编译的 JS 中。 这意味着当我收到覆盖率报告时,它的百分比很低,因为我没有测试现在包含的外部文件。

preprocessors: {
            './src/**/*.ts': ['webpack', 'coverage']
        },

如果我删除 webpack 部分或以相反的方式放置数组 (['coverage', 'webpack']) 它会失败。

所以,我不确定我所追求的是否可行,因为没有 webpack 和编译的 TS -> JS 文件将无法通过测试。有点像我要分两步完成报告。

  1. 运行 针对捆绑代码的测试并返回报告。
  2. 检查 运行 的测试并与非捆绑文件进行比较以获得准确的覆盖率报告。

如果它对任何答案都有影响,我也使用 Jasmine 作为框架。

您可以尝试使用 https://github.com/deepsweet/istanbul-instrumenter-loader 来解决您的问题,一个 webpack 加载程序从非捆绑源 js 文件生成覆盖率报告。

但该插件不支持es6,您可以参考issue#33寻找合适的解决方案。

花了一段时间 - 但我找到了一个很好的例子,它可以满足我的需求和需求。 https://github.com/AngularClass/angular2-webpack-starter 这会执行 Typescript、Karma、Coverage 和 Webpack。

还有 - https://angularclass.github.io/angular2-webpack-starter/