Node.js文件夹结构:单元测试和e2e测试

时间:2017-02-27 16:44:26

标签: javascript node.js testing directory-structure

目前,我有以下结构:

/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测试。

1 个答案:

答案 0 :(得分:2)

可能有点晚了,但是为那些可能在这个问题上迷路的人添加了它。

我同意在根目录下有一个specs文件夹对于单元测试来说很奇怪。如果我们定义:

  • 单元测试链接到单个文件
  • 集成测试可以跨越多个文件
  • e2e测试与整个服务有关

然后我们可以建立一个项目结构,例如:

├── e2e/
├── src/
│   ├── controllers/
│   ├── routes/
│   └── utils/
│       ├── foo.js
│       └── foo.test.js
└── package.json
    ...

其中package.json包含以下脚本:

"test:e2e": "node e2e",
"test:unit": "mocha server/**/*.test.js",
"test": "yarn run test:unit && yarn run test:e2e"

我认为这使所有内容完全分开,在每个单元测试旁边都放置了要测试的内容,并e2e监督了所有内容(实际上是对src进行了整体测试,因此,它处于同一水平是有道理的!)