我的所有测试都成功运行并通过。但我一直得到0%的覆盖率,或者我的karma-test-shim.js的覆盖率,它通过SystemJS启动测试及其源文件。我曾尝试以各种方式使用karma-coverage作为预处理器,有时它会预处理spec.ts文件,有时候是ts文件,有时是app文件,有时是js文件或spec.js文件。我使用Electron浏览器在karma-test-shim.js文件中加载一个需要填充程序,因为这是一个使用节点模块(如fs,path等)进行大量系统级操作的应用程序。我将SystemJS用于应用程序和测试(没有Webpack!)。
此测试设置,取消电子浏览器和需要填充程序,与我的设置类似:https://github.com/angular/quickstart/blob/master/karma.conf.js
这是我的karma.conf.js文件。
module.exports = function(config) {
config.set({
basePath: 'src/', // all the files in the files config parameter, are searched for relative to this path
frameworks: ['jasmine'],
files: files, // this has all files needed
reporters: ['spec', 'coverage'], //report to console
port: 9876,
colors: true,
browsers: ['Electron'],
singleRun: true
})
}