我已经将karma与正在工作的覆盖率工具一起设置好了——但是由于我也在使用webpack,覆盖率报告使用的是webpack创建的捆绑代码。
例如:我有一个Typescript文件,它包含一个外部库,所以为了让这个文件运行,它需要webpack。然后Webpack将该文件包含到编译后的JS中。这意味着当我得到覆盖率报告时,它的百分比很低,因为我没有测试现在包含的外部文件。
preprocessors: {
'./src/**/*.ts': ['webpack', 'coverage']
},
如果我删除webpack部分或将数组反过来放置(['coverage', 'webpack']),它将失败。
所以,我不确定我所追求的是否可能,因为没有webpack和编译的TS -> JS文件将无法通过测试。这有点像我希望分两步完成报告。
- 针对捆绑的代码运行测试并返回报告。
- 检查已运行的测试,并与未捆绑的文件进行比较,以获得准确的覆盖率报告。
如果它对任何答案都有影响,我也使用Jasmine作为框架。
你可以尝试使用https://github.com/deepsweet/istanbul-instrumenter-loader来解决你的问题,一个webpack加载器从非捆绑的源js文件生成覆盖率报告。
但是插件不支持es6,你可以参考问题#33找到合适的解决方案
花了一段时间-但我找到了一个很好的例子,与我想要的和我想要的。https://github.com/AngularClass/angular2-webpack-starter这包括Typescript, Karma, Coverage &;Webpack。
Also - https://angularclass.github.io/angular2-webpack-starter/