Javascript Jest(或Mocha)如何在不必导入的情况下工作?

Javascript Jest(或Mocha)如何在不必导入的情况下工作?,javascript,node.js,mocha.js,jestjs,Javascript,Node.js,Mocha.js,Jestjs,我们在NodeJS中使用的几乎每个模块都需要以某种方式导入。这些模块提供了我们可以使用的功能。然而,我注意到像mocha和jest这样的测试框架似乎工作方式不同。您只需在package.json中的“test”脚本下包含“mocha”或“jest”,它就完成了所有工作 我很好奇这是怎么回事。我们如何通过在package.json中的“scripts”下提到一个关键字来执行脚本/函数 如果有人能回答这个问题,那将非常有帮助!:) 关键字mocha实际上是a,就像使用linux时的ls和cat一样

我们在NodeJS中使用的几乎每个模块都需要以某种方式导入。这些模块提供了我们可以使用的功能。然而,我注意到像mocha和jest这样的测试框架似乎工作方式不同。您只需在package.json中的“test”脚本下包含“mocha”或“jest”,它就完成了所有工作

我很好奇这是怎么回事。我们如何通过在package.json中的“scripts”下提到一个关键字来执行脚本/函数


如果有人能回答这个问题,那将非常有帮助!:)

关键字
mocha
实际上是a,就像使用linux时的
ls
cat
一样

如果您询问如何使用Node.js构建CLI,以下参考可能会有所帮助

摩卡咖啡的工作原理

默认情况下,mocha查找glob“/test/*.js”,因此您可能希望将测试放在test/文件夹中。如果要包含子目录,请传递--recursive选项

参考:

  • 运行
    mocha
    CLI
  • 程序设置全局变量(例如
    descripe
    it
    等)
  • 程序加载
    test
    目录下的所有javascript文件

  • 我们通过执行“npm run test”或“npm test”命令来运行测试。不是通过执行“node test.js”、“npm start”或“npm run start”。调用test命令执行test lib CLI、mocha、jest等。这意味着您正在将test.js文件作为参数发送到test CLI。因此,您的测试命令(it、descripe等)是由测试CLI而不是javascript/节点解释的。如果您尝试“node test.js”,您将得到一个“ReferenceError:it/description未定义”。
    简而言之,由于test CLI(mocha、jest等)执行test.js文件,因此不需要导入这些lib。

    它不是关键字,而是控制台API。如果您已经在全球范围内安装了它们,您甚至不需要通过npm调用该命令,您可以直接调用mocha或jest。如果我以后有时间(如果没有其他答案或重复的问题),我会写一个简短的答案说明如何完成。@zzbov谢谢!但我还是很困惑。如果你能再详细一点,或者告诉我是怎么做的,那就太好了。在相当长的一段时间内,我似乎没有时间写一个长的答案,但是Tim Wong有一个很好的答案,涵盖了基本知识。我现在要添加的一点是,它允许您为项目构建自定义CLI,并利用这些命令。