使用 ES6 模块时,设置了 --watch 标志的 Mocha 会引发错误

pla*_*Dev 10 javascript unit-testing watch mocha.js node.js

我一直在尝试使用 --watch 标志将 Mocha 设置为自动监视文件中的更改。我在 package.json 中设置了两个脚本,如下所示:

  "test": "mocha",
  "test:watch": "mocha --watch ./test ./game_logic" 
Run Code Online (Sandbox Code Playgroud)

当调用第一个脚本时,npm test测试执行时没有错误,但是当我调用第二个脚本时npm run test:watch,会引发以下错误:

 (node:149779) UnhandledPromiseRejectionWarning: Error [ERR_REQUIRE_ESM]: Must use import to load 
 ES Module: <path to test file contained in /test>
Run Code Online (Sandbox Code Playgroud)

我不太明白错误消息,因为我已经在使用import每当我将整个文件或单独的功能从一个文件导入另一个文件时,我就已经在使用了。

Mocha 的文档指出支持将测试编写为 ES 模块,因此我真的不知道为什么会发生所描述的错误。

https://mochajs.org/#nodejs-native-esm-support

Ric*_*aca 7

根据此问题,解决方法是添加--parallel标志,如下所示:

mocha --watch --parallel --recursive test
Run Code Online (Sandbox Code Playgroud)