Node.js 文件夹结构:单元测试和端到端测试
Node.js folder structure: unit tests and e2e tests
目前,我有以下结构:
/src
/tests/e2e
/specs
而我用于单元测试的 specs
文件夹,specs
中的结构与 src
中的结构相同。 (例如 /src/user/validator.js
有一个 /specs/user/validator.spec.js
文件)。
但是,我觉得在根目录下有两个测试文件夹是不对的,我想知道社区中是否有关于此的约定。
我确实看过这个帖子:Folder structure for a Node.js project。 BDD 的建议是 spec
,单元测试的建议是 tests
。但是,我将 BDD(使用 Jasmine 或 Mocha)用于:单元测试和 e2e 测试。
可能有点晚了,但是为可能遇到这个问题的任何人添加这个。
我同意在根目录下有一个 specs
文件夹对于单元测试来说感觉很奇怪。如果我们这样定义:
- 单元测试链接到单个文件
- 集成测试可以跨越多个文件
- e2e 测试与整个服务相关
然后我们可以设置项目结构如:
├── e2e/
├── src/
│ ├── controllers/
│ ├── routes/
│ └── utils/
│ ├── foo.js
│ └── foo.test.js
└── package.json
...
package.json
包含这些脚本:
"test:e2e": "node e2e",
"test:unit": "mocha src/**/*.test.js",
"test": "yarn run test:unit && yarn run test:e2e"
在我看来,这让所有的东西都很好地分开了,每个单元测试都在它正在测试的东西旁边,e2e
将所有东西作为一个整体来监督(实际上它正在测试 src
作为一个整体,所以说是一个级别的!)
目前,我有以下结构:
/src
/tests/e2e
/specs
而我用于单元测试的 specs
文件夹,specs
中的结构与 src
中的结构相同。 (例如 /src/user/validator.js
有一个 /specs/user/validator.spec.js
文件)。
但是,我觉得在根目录下有两个测试文件夹是不对的,我想知道社区中是否有关于此的约定。
我确实看过这个帖子:Folder structure for a Node.js project。 BDD 的建议是 spec
,单元测试的建议是 tests
。但是,我将 BDD(使用 Jasmine 或 Mocha)用于:单元测试和 e2e 测试。
可能有点晚了,但是为可能遇到这个问题的任何人添加这个。
我同意在根目录下有一个 specs
文件夹对于单元测试来说感觉很奇怪。如果我们这样定义:
- 单元测试链接到单个文件
- 集成测试可以跨越多个文件
- e2e 测试与整个服务相关
然后我们可以设置项目结构如:
├── e2e/
├── src/
│ ├── controllers/
│ ├── routes/
│ └── utils/
│ ├── foo.js
│ └── foo.test.js
└── package.json
...
package.json
包含这些脚本:
"test:e2e": "node e2e",
"test:unit": "mocha src/**/*.test.js",
"test": "yarn run test:unit && yarn run test:e2e"
在我看来,这让所有的东西都很好地分开了,每个单元测试都在它正在测试的东西旁边,e2e
将所有东西作为一个整体来监督(实际上它正在测试 src
作为一个整体,所以说是一个级别的!)