【发布时间】:2014-09-16 15:32:47
【问题描述】:
我在添加测试代码覆盖率时遇到了麻烦,我正在使用 Karma,并且添加到 Karma 的文件已经与 browserify 捆绑在一起,所以在 karma.conf.coffee 中看起来像这样:
files: [
{ pattern:'bin/public/client/app.js', served:yes: included:yes }
{ pattern:'src/lib/vendor/angular-mocks/angular-mocks.js', served:yes: included:yes }
{ pattern:'bin/tests.js', served:yes: included:no }
]
这适用于运行测试,但不适用于覆盖率
我正在使用karma-coverage npm 包,这是:
preprocessors: 'bin/public/client/app.js':['coverage']
reporters: ['progress','coverage']
实际上确实创建了覆盖率统计文件,但那些是完全错误的,因为它会使 browserify 从 node_modules 带来的部分变红(因为我没有测试来覆盖那些)
理想情况下,我必须收集 browserify 生成的源映射,并针对它们运行覆盖,但 browserify 将源映射嵌入到 .js 文件中。使用karma-sourcemap-loader 让我在调试时看到原始的coffeescript 文件(由于某种原因,它只在ChromeCanary 中有效,但它有效)
我尝试做preprocessors: 'src/client/**/*.coffee':['coverage'],但根本没有统计数据显示“没有数据可显示”
你有什么想法吗?
更新:
我想通了在coffeeify 之后运行browserify-istanbul 转换,这给了我这样的漂亮图表:
现在,我需要以某种方式从中删除 app.js,因为它真的没关系而且真的很混乱
更新:
哦,我必须提供咖啡文件,而不是 javascript:
preprocessors : {
'bin/tests.js': ['sourcemap']
'src/client/**/*.coffee': ['coverage']
}
【问题讨论】:
标签: coffeescript code-coverage karma-runner browserify istanbul