1

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

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

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

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

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

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

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

4

2 回答 2

0

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

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

于 2016-10-10T03:25:08.013 回答
-1

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

另外 - https://angularclass.github.io/angular2-webpack-starter/

于 2016-11-06T21:41:27.670 回答