首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mocha和ts-node给出了'Unsupported Args‘

Mocha和ts-node给出了'Unsupported Args‘
EN

Stack Overflow用户
提问于 2021-11-16 13:17:15
回答 2查看 109关注 0票数 0

在我的package.json中,我定义了我的测试脚本:

代码语言:javascript
复制
"scripts": {
    "test": "mocha --require ts-node/register ./test/**/*.ts",
    "build": "npx tsc"
}

当我运行npm test时,我得到了结果:

代码语言:javascript
复制
> 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一起工作?

EN

回答 2

Stack Overflow用户

发布于 2021-11-16 14:27:43

我无法找到如何使用命令行解决这个问题的答案,但我通过将选项移到package.json中绕过了这个问题

代码语言:javascript
复制
"scripts": {
    "test": "mocha"
},
"mocha": {
    "extension": ["ts"],
    "spec": "test/**/*.ts",
    "require": "ts-node/register"
}

更新:我发现了错误。我把一些没有测试的代码移到了有测试的地方。日志记录器是在一个main.ts文件中定义的,该文件包含一些在没有任何保护的情况下运行的代码。事实上,error Unsupported Args是我自己的错误消息。

引用winston logger的行为导致main.ts中的代码运行。由于某些原因,既然mocha选项在package.json中,那么即使记录器仍然被引用,这个错误也不会发生,这让我感到困惑。我不确定为什么选项是直接在命令行中,还是在package.json中会导致如此大的行为差异。无论如何,学到的教训永远不会引用到你的主要“运行”模块中。

票数 0
EN

Stack Overflow用户

发布于 2021-11-16 15:23:45

我的package.json文件在scripts中包含它

代码语言:javascript
复制
"scripts": {
        "test": "./node_modules/mocha/bin/mocha -r ts-node/register tests/test.ts"
    },

在此之后,我可以运行npm test,一切似乎都很好。

devDependencies中的版本

代码语言:javascript
复制
"devDependencies": {
    "@types/chai-http": "^4.2.0",
    "@types/expect": "^24.3.0",
    "@types/mocha": "^9.0.0",
    "@types/chai": "^4.2.18",
    "@types/node": "14.14.30",
    "chai": "^4.3.4",
    "mocha": "^9.1.3",
    "ts-node": "^9.1.1",
    "typescript": "^4.4.4"
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69989860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档