我所有的测试都运行并成功通过。但是我不断获得 0% 的覆盖率,或者通过 SystemJS 启动测试及其源文件的 karma-test-shim.js 的覆盖率。我也尝试过以各种方式使用 karma-coverage 作为预处理器,有时它预处理 spec.ts 文件,有时是 ts 文件,有时是 app 目录,有时是 js 文件或 spec.js 文件。我使用 Electron 浏览器在 karma-test-shim.js 文件中加载 require shim,因为这是一个使用 fs、path 等节点模块进行大量系统级操作的应用程序。我使用 SystemJS 作为应用程序和测试(没有 Webpack!)。
这个测试设置,减去 Electron 浏览器和需要 shim,与我的设置类似: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
})
}