У меня есть Browserify, 6to5ify и Karma, чтобы играть хорошо, успешно выполняя мои спецификации. Однако когда я добавляю покрытие кода, все идет наперекосяк. Я пробовал несколько подходов:
- Добавьте
browserify-istanbul
преобразование в мой karma.conf.js. Однако это приводит к тому, что он пытается запустить инструменты для моих спецификаций, как это может показаться. - Запустите препроцессор
coverage
на моих исходных файлах. Но из-за того, что Стамбул (дажеdouglasduteil/karma-coverage#next
) не читает мое преобразование6to5ify
в браузере, он немедленно падает при первом же попытке разобрать файл (из-за оператораimport
), или когда я использую karma-coverage#next, он не учитывает сопоставлениеbrowser
в моем package.json (мобильный проект, сопоставленный Backbone с Exoskeleton).
Сейчас мой 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
. Любая помощь будет принята с благодарностью.