Как настроить тест npm через mocha?

#node.js #typescript #npm #electron #mocha.js

#node.js #typescript #npm #электрон #mocha.js

Вопрос:

Я использую Angular TypeScript Electron и пытаюсь добавлять тесты в свое приложение. Я установил mocha и добавил следующую строку в package.json :

 "test": "mocha './**/*.spec.ts'",
  

У меня есть app.component.spec.ts файл в моем исходном каталоге, но выполнение npm run test завершается неудачно со следующим исключением:

 > mocha './**/*.spec.ts'
srcappapp.component.spec.ts:1
import { TestBed, waitForAsync } from '@angular/core/testing';
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at wrapSafe (internal/modules/cjs/loader.js:931:16)
    at Module._compile (internal/modules/cjs/loader.js:979:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1035:10)
    at Module.load (internal/modules/cjs/loader.js:879:32)
  

Кто-нибудь может объяснить мне контекст и как я мог бы исправить эту проблему?

PS В похожих сообщениях module tsconfig.json необходимо было установить commonjs значение in, что я и сделал, но это не решило проблему:

 {
  "compileOnSave": false,
  "compilerOptions": {
    "module": "commonjs",
    ...
}
  

Комментарии:

1. Вам нужен ts-mocha ( npmjs.com/package/ts-mocha ).

2. npm i --save-dec ts-mocha не решил проблему

3. Вам нужно не только установить его, но и изменить свой тестовый скрипт и вызвать его. Или вы можете просто попробовать это с помощью npx в корневом каталоге приложения вашего терминала, например: npx ts-mocha './**/*.spec.ts' .