Как использовать JS-модуль Native Node (--experimental-modules) с Mocha - PullRequest
0 голосов
/ 27 июня 2018

У меня есть следующий набор тестов ...

import Mocha from 'mocha';
import path from 'path';
const __dirname = path.dirname(new URL(import.meta.url).pathname);
(()=>{
    let mocha = new Mocha();
    mocha.addFile(path.resolve(__dirname,'./tests/sampleTest.js'));
    mocha.run(failures => {
        console.log("Running Mocha");

        process.on('exit', () => {
            console.log("Ending Mocha");
            process.exit(failures ? 1 : 0);
        });
    });
})();

И следующий тестовый файл ...

const assert = require('assert');
describe('Array', function() {
  describe('#indexOf()', function() {
    it('should return -1 when the value is not present', function() {
      assert.equal([1,2,3].indexOf(4), -1);
    });
  });
});

Это прекрасно работает, однако я хочу преобразовать его в модуль JS (.mjs), чтобы я мог импортировать другие модули в тесте. Я пытаюсь сделать это, изменив расширение и сделав код ...

import assert from 'assert';
describe('Array', function() {
  describe('#indexOf()', function() {
    it('should return -1 when the value is not present', function() {
      assert.equal([1,2,3].indexOf(4), -1);
    });
  });
});

Когда я запускаю это, я получаю ...

Must use import to load ES Module: **/src/test/js/webdriver/tests/sampleTest.mjs

Я тоже пытался просто импортировать его вот так ...

import Mocha from 'mocha';
import path from 'path';
import './tests/sampleTest.mjs';
const __dirname = path.dirname(new URL(import.meta.url).pathname);
(()=>{
    let mocha = new Mocha();
//    mocha.addFile(path.resolve(__dirname,'./tests/sampleTest.mjs'));
    mocha.run(failures => {
        console.log("Running Mocha");

        process.on('exit', () => {
            console.log("Ending Mocha");
            process.exit(failures ? 1 : 0);
        });
    });
})();

Но тогда я получаю ...

ReferenceError: описание не определено

я тоже пробовал

import mocha from "mocha"
...
mocha.describe(...)

Но это тоже не сработало.

Как загрузить другой модуль в мокко?

1 Ответ

0 голосов
/ 15 сентября 2018

Единственный обходной путь на данный момент - https://www.npmjs.com/package/mjs-mocha

Я надеюсь, что эта ссылка здесь подходит, потому что npm сохраняет пакеты навсегда. Не стесняйтесь обращаться к документации и источникам пакета

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...