Javascript ';摩卡咖啡&x27;未被识别为内部或外部命令-mocha未通过supertest自动安装

Javascript ';摩卡咖啡&x27;未被识别为内部或外部命令-mocha未通过supertest自动安装,javascript,node.js,npm,mocha.js,supertest,Javascript,Node.js,Npm,Mocha.js,Supertest,我需要对用NodeJS编写的restapi进行单元测试。为此,我需要使用npm包。我在下面介绍如何实现单元测试功能 现在,在本文中提到,mocha已经包含在supertest中,因此不需要单独安装。因此,我只使用-npm安装--save dev supertest安装supertest 但是,当我在我的package.json-“test”:“mocha”,并运行npm test,它会给出一个错误,即“mocha”不被识别为内部或外部命令。我需要运行npm安装--保存dev mocha以使其成功

我需要对用NodeJS编写的restapi进行单元测试。为此,我需要使用npm包。我在下面介绍如何实现单元测试功能

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

但是,当我在我的
package.json
-
“test”:“mocha”
,并运行
npm test
,它会给出一个错误,即
“mocha”不被识别为内部或外部命令。我需要运行
npm安装--保存dev mocha
以使其成功运行。但是,为什么我需要单独包含
摩卡
,如果这是它应该如何运行的,为什么在本文中或
supertest的npm主页上没有提到它?

我去检查了依赖项。Mocha被列为开发人员依赖项。这意味着Mocha是在创建supertest时使用的,但supertest不需要Mocha。 当我在Node.js项目上工作时,我会将某些包作为开发人员依赖项安装。这些可以是测试用包装(摩卡)或绒线(标准)。这意味着在部署项目时,它将不需要这些包来运行

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

正如你所看到的,摩卡咖啡并没有列入清单

此外,ran
npm ls mocha
输出为:
$npm ls摩卡
nodetest@1.0.0E:\Nodetest
--(空)

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


为什么文章说有摩卡咖啡?可能是在早期版本的supertest中,它作为依赖项包含在Mohit中-查看HelpsHanks@VimalMahi是否检查了此线程,但不幸的是无法找到我要查找的内容。非常感谢您的努力@Sansolo。所以,这意味着我需要安装
mocha
来运行带有supertest的测试用例,对吗?我有点困惑,因为在他们的npm页面上,他们也在使用
mocha
语法,但没有提到单独安装,但这可能是显而易见的。@Mohit Bharadwaj我查看了这篇文章,它确实说supertest包括mocha。嗯,可能是以前的版本做的。你能把这个标记为答案吗?:)