Запуск одного теста 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, работает нормально, как я уже говорил.
Любая помощь оценивается.
Ответы
Ответ 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 для запуска тестов кармы, правильные параметры будут следующими:
Ответ 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