如何让 Mocha 在 Node.js 中的多个子文件夹中执行单元测试
How to get Mocha to execute unit tests in multiple subfolders in Node.js
我正在将测试集成到我的节点服务器中,但在单元测试方面遇到了一些问题。当我在我的根目录中 运行 npm test
时,Mocha 会自动 运行 在我的 test
文件夹中进行所有测试。然而,分散在整个项目中的单元测试却没有运行。我怎样才能确保 Mocha 自动 运行s 它们?
您可以将 npm test
命令修改为 find
您的测试文件并 运行 mocha
针对它们。
假设目录结构如下:
project/
src/
test/
main-tests.test.js
things/
test/
thing.test.js
more_things/
more-things.test.js
您可以像这样更改您的 package.json
:
scripts: {
...
"test": "mocha $(find . -name '*.test.js')"
...
}
可能还有其他方法可以做到这一点,比如指定测试文件位置的预期 glob 模式。
这两种方法都要求您的测试文件名称采用普通模式。
我不明白你为什么要进行测试 "dispersed throughout the project"。我认为将它们全部保存在专用测试文件夹中会好得多。如果您担心要轻松找到特定源文件的测试,您可以镜像 src
文件夹的文件夹结构。示例:
project/
├── src/
│ ├── one/
│ │ └── foo.js
│ └── two/
│ └── bar.js
└── test/
├── one/
│ └── foo.test.js
└── two/
└── bar.test.js
不管你是否决定重新组织你的项目,让mocha递归执行所有测试文件的方法如下:
scripts: {
"test": "mocha \"./**/*.test.js\""
}
如果您不想搜索整个项目文件夹,可以将 .
替换为 test
或 src
(或任何其他文件夹)。
您可以在此处阅读更多相关信息:
我正在将测试集成到我的节点服务器中,但在单元测试方面遇到了一些问题。当我在我的根目录中 运行 npm test
时,Mocha 会自动 运行 在我的 test
文件夹中进行所有测试。然而,分散在整个项目中的单元测试却没有运行。我怎样才能确保 Mocha 自动 运行s 它们?
您可以将 npm test
命令修改为 find
您的测试文件并 运行 mocha
针对它们。
假设目录结构如下:
project/
src/
test/
main-tests.test.js
things/
test/
thing.test.js
more_things/
more-things.test.js
您可以像这样更改您的 package.json
:
scripts: {
...
"test": "mocha $(find . -name '*.test.js')"
...
}
可能还有其他方法可以做到这一点,比如指定测试文件位置的预期 glob 模式。
这两种方法都要求您的测试文件名称采用普通模式。
我不明白你为什么要进行测试 "dispersed throughout the project"。我认为将它们全部保存在专用测试文件夹中会好得多。如果您担心要轻松找到特定源文件的测试,您可以镜像 src
文件夹的文件夹结构。示例:
project/
├── src/
│ ├── one/
│ │ └── foo.js
│ └── two/
│ └── bar.js
└── test/
├── one/
│ └── foo.test.js
└── two/
└── bar.test.js
不管你是否决定重新组织你的项目,让mocha递归执行所有测试文件的方法如下:
scripts: {
"test": "mocha \"./**/*.test.js\""
}
如果您不想搜索整个项目文件夹,可以将 .
替换为 test
或 src
(或任何其他文件夹)。
您可以在此处阅读更多相关信息: