6

我在添加测试代码覆盖率时遇到了麻烦,我正在使用 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-coveragenpm 包,这是:

preprocessors: 'bin/public/client/app.js':['coverage']

reporters: ['progress','coverage']

实际上确实创建了覆盖率统计文件,但这些是完全错误的,因为它会使 browserify 从 node_modules 带来的部分变红(因为我没有测试来覆盖那些)

理想情况下,我必须收集 browserify 生成的源映射,并对它们运行覆盖,但 browserify 将源映射嵌入到 .js 文件中。使用karma-sourcemap-loader让我在调试时看到原始的咖啡脚本文件(由于某种原因,它只在 ChromeCanary 中有效,但它有效)

我试图这样做preprocessors: 'src/client/**/*.coffee':['coverage'],但这根本没有产生任何统计数据说“没有数据要显示”

你有什么想法?

更新:

我想通了browserify-istanbul之后立即运行转换coffeeify,这给了我这样的漂​​亮图表:在此处输入图像描述

现在,我需要以某种方式从中删除 app.js,因为它真的没关系而且真的很混乱

更新:

哦,我必须提供咖啡文件,而不是 javascript:

preprocessors : {
    'bin/tests.js': ['sourcemap']
    'src/client/**/*.coffee': ['coverage']
}
4

1 回答 1

3

似乎我回答了我自己的问题。此外,当前版本似乎存在一个错误- 它在iskarma-coverage时引发错误(默认情况下为 html)。我很高兴我弄明白了。看到测试覆盖了多少代码总是很高兴coverageReporter.typehtml

于 2014-07-25T00:34:46.500 回答