Имеется проект на JavaScript + Node.JS + Ant.
Тесты для JavaScript-кода написаны на Karma + Jasmine.
Для оценки покрытия кода тестами используется Istanbul.
После ввода команды:
istanbul cover someFile.js
появляется ошибка:
"[path to the file]\someFile.js:9
__cov_lhpa2MzHG9ur0fWhNQ3HsA.s['1']++;define('some',function(){__cov_lhpa2MzHG
ReferenceError: define is not defined"
Код внутри файла someFile.js:
define('someFile', function() {
describe("Base64", function () {
it('Base64_TestEncode', function () {
expect( "TXkgZW5nbGlzaCBiYWQ=" ).toEqual( $ws.single.base64.encode( "someText" ) );
});
});
});
Подскажите, пожалуйста, как решить проблему?
UPD:
Добавил в начало файла код:
if (typeof define !== 'function') {
var define = require('amdefine')(module);
}
Теперь выводится ошибка:
"[path to the file]\someFile.js:9
pa2MzHG9ur0fWhNQ3HsA.f['1']++;__cov_lhpa2MzHG9ur0fWhNQ3HsA.s['4']++;describe('
ReferenceError: describe is not defined"
UPD_2:
Istanbul изначально
поддерживается Karma.
Добавил в karma.konf.js строки:
preprocessors = {
'<путь до файла someFile.js>': 'coverage'
}
reporters: ['progress', 'coverage']
coverageReporter: {
type : 'html',
dir : 'coverage/'
}
Если запустить karma.konf.js в WebStorm, то тесты проходят, но покрытие кода не выполняется (папка coverage не создается).
Если запустить karma.konf.js в PHPStorm, предварительно установив плагин "karma", то тесты проходят и покрытие кода выполняется (папка coverage создается).
Не смотря на это, в консоли при выполнении команды:
"istanbul cover <путь до файл someFile.js>"
появляются ошибки, описанные в начале вопроса.