我正在重构公司的一个后端,并尽可能地将其模块化。我的结构可以定义为由几个本地子模块和需要它们的一两个主模块(子模块)组成的单一存储库。让我们来说明一下:
- 根
- 主要
- package.json
- 使用子模块A的东西
- 使用子模块B的东西
- 测试
- 模块
- 子模块A
- package.json
- 代码
- 测试
- 子模块B
- package.json
- 测试
如您所见,每个模块都有自己的测试、package.json
和依赖项。一切都在其中完美运行(例如,在模块的文件夹内运行 npm test
)。我正在使用 lab
和 code
进行测试。
我想要做的是进入项目的根目录,运行npm test
并运行所有子模块和主模块的所有测试。基本上一次性运行任意测试文件夹下的所有测试。
目前我发现的问题是:
- 当前仅运行目标测试目录下的文件。我什至不知道如何一次运行所有测试。我的命令看起来像 lab src/main/test --reporter console --threshold 100 --assert code
我现在所做的是将所有测试放在同一个测试目录下,并对所有内容提出相对要求。这非常不方便,因为所有这些 ../../../some/away/path
要求的测试都变得脆弱。
任何有关保持代码模块化并能够立即运行所有测试的建议都将非常受欢迎。非常感谢。
我一周前在 hapijs 存储库上问过这个问题,所以如果你也想在那里回答也可以:https://github.com/hapijs/discuss/issues/397
最佳答案
我建议将 submoduleA 和 submoduleB 制作为独立的 Node 模块,然后您可以在需要时安装并与主模块一起使用。通过这种方式,您可以单独测试每个部分,然后一起测试,这应该会产生相同的结果,并使您能够更轻松地运行测试。
关于node.js - 对所有测试子文件夹运行实验室测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40613221/