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

17

У меня установлен Idea Web Storm и можно успешно запустить Karma Tests, если тестовые спецификации определены в 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 :

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

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

задан JamesC 13.05.2014 в 13:15
источник
  • Почему вы используете конфигурацию отладки узла вместо конфигурации кармы? –  eran otzap 01.01.2015 в 23:21
  • Итак, нет абсолютно никакого способа запустить только один тест (youtrack.jetbrains.com/issue/WEB-10067)? Если я отлаживаю один тест, я хочу запустить этот тест, а не весь пакет. Я бы предположил, что это очень распространенный рабочий процесс? –  David 05.11.2015 в 09:32
  • @David Это цель целенаправленного теста, это достаточно хорошо, насколько мне известно ... –  rixo 10.11.2015 в 20:37

3 ответа

12

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

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

Вот пример:

fdescribe('Spec1', function () {

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

describe('Spec2', function () {

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

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

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

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

    
ответ дан Jon Quarfoth 11.11.2015 в 17:25
  • Я добавил щедрость неделю назад, это именно то, что я в конечном итоге использовал после дополнительных исследований. –  David 12.11.2015 в 13:42
  • есть также карма ddescribe, для всех, кто интересуется –  David 12.11.2015 в 13:43
  • Мне кажется, что глупо требовать, чтобы вытолкнуть код, а не только с параметром -grep. С другой стороны, нет другого способа, кроме как поработать с тестами и не заставлять git добавлять.? –  Ingwie Phoenix 23.12.2015 в 13:46
  • Я согласен с @IngwiePhoenix - мне действительно не нравится идея настроить код. Вы предупреждаете о том, чтобы не совершать «подгонки» и «fdescribe», но это так легко пропустить, когда вы делаете много других изменений кода. –  Forge_7 13.09.2016 в 11:17
1

Вы не можете запускать тесты кармы таким образом - необходимые модули не загружаются. Что вы пытаетесь сделать - запуск отдельного тестового файла? Невозможно напрямую передать спецификационный файл в карму - см. Ссылка

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

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

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

ответ дан lena 13.05.2014 в 13:42
  • Согласовано это кажется невозможным. Запуск их через то, что настроено в karma.conf.js, хорошо работает. Было бы хорошо просто запустить один пакет быстро, без необходимости редактировать файл karma.conf.js. –  JamesC 13.05.2014 в 13:51
0

Для проекта с угловым2 скопируйте файлы 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- & gt; Edit Configurations создайте цель Karma и измените конфигурационный файл на karma.single.conf.js

    
ответ дан user926643 29.01.2017 в 19:52