我有 Browserify、6to5ify 和 Karma 可以很好地发挥作用,成功运行我的规范。然而,当我添加代码覆盖率时,事情就变糟了。我尝试了几种方法:
- Add
browserify-istanbul
转换为我的 karma.conf.js。然而,这会导致它尝试在我的规范文件上运行检测,就像它会出现的那样。
- Run
coverage
我的源文件的预处理器。但因为伊斯坦布尔(甚至douglasduteil/karma-coverage#next
)不读我的6to5ify
browserify 转换,这会在它尝试解析的第一个文件上立即崩溃(因为import
声明),或者当我使用 karma-coverage#next 时,它不尊重browser
映射在我的 package.json 中(移动项目,将 Backbone 映射到外骨骼)。
现在我的karma.conf.js
看起来像这样:
module.exports = function(karma){
karma.set({
frameworks: ["browserify", "mocha", "chai-sinon"],
browserify: {
debug: true,
extensions: [".js", ".hbs"],
transform: ["6to5ify", "hbsfy"]
},
reporters: ["dots", "osx", "junit", "coverage"],
coverageReporter: {
type: "text"
},
junitReporter: {
outputFile: "spec/reports/test-results.xml"
},
preprocessors: {
"src/javascript/**/*": ["coverage"],
"spec/**/*": ["browserify"]
},
browsers: ["PhantomJS"],
files: ["spec/unit/**/*Spec.js"],
logLevel: "LOG_DEBUG",
autoWatch: true
});
};
我有点迷失如何让这一切一起工作。我尝试以下这些说明 https://github.com/douglasduteil/isparta,但这不起作用,因为它不遵循我的browser
节点在package.json
。任何帮助将不胜感激。