Задать вопрос

Как исправить ошибку “define is not defined” при запуске Istanbul \\?

Имеется проект на 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>"

появляются ошибки, описанные в начале вопроса.
  • Вопрос задан
  • 13191 просмотр
Подписаться 5 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
iDennis
@iDennis
В ошибке все написано
Ответ написан
xamd
@xamd
javascript-ninja
Проблема в том, что вы пытаетесь использовать requirejs оболочку для модуля, когда сам requirejs не подключен. Не путайте requirejs с commonjs, первый не поставляется "из коробки", вам придется установить и подключить его до запуска.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽