Как использовать импорт ES6 в тестах Mocha в IntelliJ IDEA? - PullRequest
0 голосов
/ 18 июня 2020

У меня IDEA 2020.1.2 Ultimate Edition, у меня установлен NodeJS плагин, необходимый для запуска тестов Mocha с IDE.

Когда я запускаю этот простой тест с IDEA (не с npm test в console)

import assert from "assert";

it('must return true', () => {
    assert.equal(true, true);
});

это дает мне следующую ошибку:

/usr/bin/node /home/chriego/Projects/personal/my-project/frontend/node_modules/mocha/bin/mocha --ui bdd --reporter /opt/idea/plugins/NodeJS/js/mocha-intellij/lib/mochaIntellijReporter.js /home/chriego/Projects/personal/my-project/frontend/tests/time.js --grep "^должно возвращать true$"

/home/chriego/Projects/personal/my-project/frontend/tests/time.js:1
import assert from "assert";
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at wrapSafe (internal/modules/cjs/loader.js:1116:16)
    at Module._compile (internal/modules/cjs/loader.js:1164:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
    at Module.load (internal/modules/cjs/loader.js:1049:32)
    at Function.Module._load (internal/modules/cjs/loader.js:937:14)
    at Module.require (internal/modules/cjs/loader.js:1089:19)
    at require (internal/modules/cjs/helpers.js:73:18)
    at Object.exports.requireOrImport (/home/chriego/Projects/personal/my-project/frontend/node_modules/mocha/lib/esm-utils.js:20:12)
    at Object.exports.loadFilesAsync (/home/chriego/Projects/personal/my-project/frontend/node_modules/mocha/lib/esm-utils.js:33:34)
    at Mocha.loadFilesAsync (/home/chriego/Projects/personal/my-project/frontend/node_modules/mocha/lib/mocha.js:421:19)
    at singleRun (/home/chriego/Projects/personal/my-project/frontend/node_modules/mocha/lib/cli/run-helpers.js:156:15)
    at exports.runMocha (/home/chriego/Projects/personal/my-project/frontend/node_modules/mocha/lib/cli/run-helpers.js:225:10)
    at Object.exports.handler (/home/chriego/Projects/personal/my-project/frontend/node_modules/mocha/lib/cli/run.js:366:11)
    at /home/chriego/Projects/personal/my-project/frontend/node_modules/mocha/node_modules/yargs/lib/command.js:241:49

Process finished with exit code 1

Я знаю, что мне нужно использовать Babel, и я могу настроить его и запустить Mocha с консоли с функциями ES6 , но как мне сказать IDEA использовать функции ES6?

1 Ответ

0 голосов
/ 18 июня 2020

Все, что мне нужно было сделать, это:

  1. npm install --save-dev babel-register
  2. Добавить --require babel-core/register в настройках конфигурации тестового запуска Mocha в разделе «Дополнительные параметры Mocha» (это устарело --compilers вариант, см. https://github.com/mochajs/mocha/wiki/compilers-deprecation). Чтобы сделать его постоянным, отредактируйте шаблон Mocha для конфигурации запуска:

edit Mocha template for run configuration

...