Jest(或 Mocha)如何在无需导入的情况下工作?
How does Jest (or Mocha) work without having to be imported?
我们在 NodeJS 中使用的几乎每个模块都需要以某种方式导入。这些模块提供了我们可以使用的功能。但是,我注意到 mocha 和 jest 等测试框架的工作方式似乎不同。您只需在 package.json 中的 "test" 脚本下包含 "mocha" 或 "jest",它就会完成所有工作。
我很好奇这是如何工作的。我们如何通过在 package.json.
中的 "scripts" 下提及关键字来执行脚本/函数
如果有人能回答这个问题将非常有帮助! :)
关键字mocha
实际上是一个CLI,就像ls
和cat
如果你使用linux。
如果您询问如何使用 Node.js 构建 CLI,以下参考资料可能会有所帮助。
mocha
的工作原理
By default, mocha looks for the glob "./test/*.js", so you may want to put your tests in test/ folder. If you want to include subdirectories, pass the --recursive option.
Reference: https://mochajs.org/#the-test-directory
- 运行
mocha
CLI。
- 程序设置全局变量(如
describe
、it
等)
- 程序加载
test
目录下的所有 javascript 个文件。
我们正在通过执行“npm 运行 test”或“npm test”命令进行 运行ning 测试。不是通过执行“node test.js”、“npm start”或“npm 运行 start”。调用测试命令执行测试库 CLI、mocha、jest 等。这意味着您将 test.js 文件作为参数发送到测试 CLI。因此,您的测试命令(it、describe 等)由测试 CLI 解释,而不是 javascript/node。如果你尝试“node test.js”,你会得到一个“ReferenceError: it/describe is not defined”。
很快,由于您的 test.js 文件由测试 CLI(mocha、jest 等)执行,因此您不需要导入这些库。
我们在 NodeJS 中使用的几乎每个模块都需要以某种方式导入。这些模块提供了我们可以使用的功能。但是,我注意到 mocha 和 jest 等测试框架的工作方式似乎不同。您只需在 package.json 中的 "test" 脚本下包含 "mocha" 或 "jest",它就会完成所有工作。
我很好奇这是如何工作的。我们如何通过在 package.json.
中的 "scripts" 下提及关键字来执行脚本/函数如果有人能回答这个问题将非常有帮助! :)
关键字mocha
实际上是一个CLI,就像ls
和cat
如果你使用linux。
如果您询问如何使用 Node.js 构建 CLI,以下参考资料可能会有所帮助。
mocha
的工作原理
By default, mocha looks for the glob "./test/*.js", so you may want to put your tests in test/ folder. If you want to include subdirectories, pass the --recursive option.
Reference: https://mochajs.org/#the-test-directory
- 运行
mocha
CLI。 - 程序设置全局变量(如
describe
、it
等) - 程序加载
test
目录下的所有 javascript 个文件。
我们正在通过执行“npm 运行 test”或“npm test”命令进行 运行ning 测试。不是通过执行“node test.js”、“npm start”或“npm 运行 start”。调用测试命令执行测试库 CLI、mocha、jest 等。这意味着您将 test.js 文件作为参数发送到测试 CLI。因此,您的测试命令(it、describe 等)由测试 CLI 解释,而不是 javascript/node。如果你尝试“node test.js”,你会得到一个“ReferenceError: it/describe is not defined”。 很快,由于您的 test.js 文件由测试 CLI(mocha、jest 等)执行,因此您不需要导入这些库。