【问题标题】:'mocha' is not recognized as an internal or external command - mocha not getting automatically installed with supertest'mocha' 未被识别为内部或外部命令 - mocha 没有自动安装 supertest
【发布时间】:2019-05-07 22:38:13
【问题描述】:

我需要对用 NodeJS 编写的 rest api 进行单元测试。为此,我需要使用supertest npm 包。我关注 this tutorial article 来实现单元测试功能。

现在,本文提到mocha 本身已经包含在supertest 中,因此无需单独安装。所以,我只使用 - npm install --save-dev supertest 安装supertest

但是,当我在我的package.json - "test": "mocha" 中添加这一行并运行npm test 时,它会给出错误提示'mocha' is not recognized as an internal or external command。我需要运行npm install --save-dev mocha 才能使其成功运行。但是为什么我需要单独包含mocha,如果这就是它应该运行的方式,为什么本文或supertest的npm主页上没有提到它?

【问题讨论】:

标签: javascript node.js npm mocha.js supertest


【解决方案1】:

我去了Supertest page on npmjs 并检查了依赖项。 Mocha 被列为开发依赖项。这意味着在创建超测时使用了 Mocha,但不是超测运行所必需的。 当我处理 Node.js 项目时,我会安装某些包作为开发依赖项。这些可以是用于测试(Mocha)或 linting(标准)的包。这意味着当项目部署时,它不需要这些包来运行。

另外,您可以使用npm list 命令查看安装了哪些模块。我刚刚安装了 supertest 并运行了 npm list。这是超测的结构:

如您所见,Mocha 未列出

此外,运行npm ls mocha 并输出: $ npm ls mocha nodetest@1.0.0 E:\Nodetest -- (empty)

当我运行npm ls supertest 时,输出为: $ npm ls supertest nodetest@1.0.0 E:\Nodetest -- supertest@3.3.0

为什么文章说摩卡是可用的?可能在早期版本的 supertest 中它被包含为依赖项

【讨论】:

  • 非常感谢@Sansolo 的努力。所以,这意味着我还需要安装 mocha 来运行带有 supertest 的测试用例,对吧?我在他们的 npm 页面上也有点困惑,他们使用mocha 语法,但没有提到单独安装它,但这可能很明显。
  • @Mohit Bharadwaj 我检查了这篇文章,它确实说超级测试包括摩卡咖啡。嗯,可能是以前的版本做过。您可以将此标记为答案吗? :)
猜你喜欢
  • 1970-01-01
  • 2014-04-29
  • 1970-01-01
  • 1970-01-01
  • 2013-10-06
  • 2013-10-11
  • 2013-01-25
  • 2016-10-01
  • 2022-01-22
相关资源
最近更新 更多