Подтвердить что ты не робот

Запуск одного теста Karma Jasmine в Web Storm через меню правой кнопки мыши

У меня есть настройка Idea Web Storm и можно запустить Karma Тесты успешно, если тестовые спецификации определены в karam.conf.js.

Однако, если я нажму правой кнопкой мыши на JS файл и выберите "Запустить MySpec.js", я получаю эту ошибку:

/usr/bin/node MyTestSpec.js

/Users/dev/WebstormProjects/demow/test/MyTestSpec.js:4
describe('Activate wallet controller --', function () {
^
ReferenceError: describe is not defined
    at Object.<anonymous> (/Users/dev/WebstormProjects/demow/test/MyTestSpec.js:4:1)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:901:3

Process finished with exit code 8

Возможно, невозможно запустить JS-тесты таким образом.

Вот конфигурация в WebStorm: enter image description here

Конфигурация KT, связанная с файлом karma.conf.js, работает нормально, как я уже говорил.

Любая помощь оценивается.

4b9b3361

Ответ 1

У меня нет для вас решения WebStorm-specific. Однако, если вы хотите просто выполнить определенные тесты жасмина, а не все, это возможно с помощью " сфокусированные спецификации"

По существу, если вы измените describe на fdescribe или it на fit, жасмин будет запускать спецификации только с префиксом f и игнорировать все остальные.

Вот пример:

fdescribe('Spec1', function () {

    it('should do something', function () {
        ...
    });
});

describe('Spec2', function () {

    it('should do something', function () {
        ...
    });
});

Если вы запускаете тесты жасмина в этом файле, все it в блоке Spec1 fdescribe будут запущены.

Итак, если вы можете заставить WebStorm запускать все ваши спецификации, вы можете использовать fdescribe и fit, чтобы сфокусировать запуск только на определенных.

Просто будьте осторожны, чтобы не зафиксировать ваш код с fit и fdescribe в нем, или вы можете непреднамеренно заставить ваш CI-сервер пропускать большинство ваших спецификаций:)

Ответ 2

Вы не можете запускать тесты кармы таким образом - необходимые модули не загружаются. Что вы пытаетесь сделать - запуск отдельного тестового файла? Невозможно передать конкретный файл в карму напрямую - см. https://github.com/karma-runner/karma/issues/553

Если вы хотите использовать конфигурацию Node.js для запуска тестов кармы, правильные параметры будут следующими:

  • Файл Javascript:/usr/local/bin/karma

  • Параметры приложения: start karma.conf.js

Ответ 3

Для проекта angular2 скопируйте файлы karma.conf.js и src/test.ts в файлы, назвав их чем-то вроде karma.single.conf.js и src/test.single.ts.

Отредактируйте файл karma.single.conf. Измените 2 места, которые ссылаются на src/test.ts на src/test.single.ts(файлы и pattens).

В файле test.single.ts файл

let context = require.context('./', true, /\.spec\.ts/);

для регулярного выражения для тестового файла или файлов, которые вы хотите протестировать

 let context = require.context('./', true, /data\.service\.spec\.ts/);

Затем run- > Edit Configurations создайте цель Karma и измените конфигурационный файл на karma.single.conf.js