我有一个Angular 2项目设置,目前使用SystemJS + JSPM + frankwallis / plugin-typescript来动态加载我的TypeScript文件,以实现快速简便的开发工作流程。我还使用Karma-JSPM设置了Karma + Jasmine基本测试,所以我不重复配置也可以正常工作。
我遇到的问题(实际上并不知道是否可能)是我无法为这些设置覆盖范围,因为文件没有进行物理转换(JSPM和frankwallis / plugin-typescript loader需要注意)这个)和覆盖预处理器部分失败,因为它无法读取TypeScript或什么?
karma.conf.js
module.exports = function (config) {
config.set({
basePath: './src',
frameworks: ['jspm', 'jasmine'],
jspm: {
loadFiles: [
'app/**/*.spec.ts'
],
serveFiles: [
'app/**/*!(*.spec).ts',
'typings/**/*.*',
'tsconfig.json'
]
},
preprocessors: {
// Throws errors about unexpected token / not a string or buffer
//'app/**/*!(*.spec).ts': ['coverage']
},
... other parts removed for brevity
plugins: [
'karma-jasmine',
'karma-jspm',
'karma-coverage',
'karma-chrome-launcher'
],
coverageReporter: {
reporters: [
{ type: 'json', subdir: '../../coverage', file: 'coverage-final.json' }
]
},
})
}
我在周围搜索过人们在Karma-JSPM github问题上提到过这个问题,但除了找到一个' instrumentor'之外,没有提到真正的解决方案。对于可以读取TypeScript但并不真正理解的coverageReporter。
完整的当前代码(无覆盖率)为here。
编辑:我还找到this on stackoverflow,但它似乎没有帮助。