【发布时间】:2021-12-27 13:44:54
【问题描述】:
在我的package.json 中我定义了我的测试脚本:
"scripts": {
"test": "mocha --require ts-node/register ./test/**/*.ts",
"build": "npx tsc"
}
当我运行 npm test 时,我得到了结果:
> mocha --require ts-node/register ./test/**/*.ts
error: Unsupported Args: --require ts-node/register ./test/**/*.ts
这似乎是命令交互。即使我手动运行它node .\node_modules\mocha\bin\mocha --require ts-node/register "./test/**/*.ts" 它也会失败并显示相同的消息。如果我删除 --require ts-node/register 它会运行,但在对 import 语句运行测试时会失败,因为我的测试文件是 Typescript 文件。
如何让 mocha 与 ts-node 一起工作?
【问题讨论】:
-
这个命令应该可以工作,一切都很好。这意味着其他地方出了问题(可能是摩卡的错误版本?),我们没有看到全貌。
-
我使用的是 mocha 9.1.3 和 ts-node 10.4.0。我正在使用 CommonJS 模块类型。除了我的脚本调用之外,没有与这两个模块相关的配置或其他设置。怀疑这可能是 Windows 命令参数处理的错误。
-
不,不是这样。刚刚在 Linux 机器上尝试过,它给出了相同的响应。
-
有a section in ts-node's readme,专门用于摩卡咖啡。它不直接回答问题,但可能有用。你看过了吗?
-
是的,我查看了 ts-node 和 mocha 以了解如何一起使用它们。即使复制您链接
mocha --require ts-node/register --extensions ts,tsx --watch --watch-files src 'tests/**/*.{ts,tsx}'的完全相同的行,它也会正确给出:Error: No test files found: "tests/**/*.{ts,tsx}"但是当我从tests更改为test以获取有效路径时,我会返回相同的错误Unsupported Args ......。