我有 Browserify、6to5ify 和 Karma 玩得很好,成功运行了我的规范。但是,当我添加代码覆盖率时,事情就向南了。我尝试了几种方法:
- 将
browserify-istanbul
转换添加到我的 karma.conf.js。但是,这会导致它尝试在我的规范文件上运行检测,它也会出现。 coverage
在我的源文件上运行预处理器。但是因为 istanbul (evendouglasduteil/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
});
};
我有点迷失如何让这一切一起工作。我尝试按照这些说明进行操作,但这不起作用,因为它没有遵循我的browser
节点package.json
。任何帮助将不胜感激。