运行 多个 cwd 上的 Mocha 和 Istanbul
Running Mocha and Istanbul on multiple cwd
我正在寻找一种方法来管理测试并覆盖具有多个微服务的项目,这些微服务在其目录中有自己的测试。
└── services
├── service-1
│ ├── src
│ └── test
├── service-2
│ ├── src
│ └── test
└── service-3
├── src
└── test
每个服务都有自己的测试,它们都需要从自己的 cwd 执行,以使要求和路径正常工作。
从项目的根启动这些测试并让 nyc 覆盖整个项目的最佳方法是什么?
截至目前,我正在使用 bash 脚本 test.sh
:
#!/bin/bash
set +e
(cd ./services/service-1 && npm run test)
(cd ./services/service-2 && npm run test)
(cd ./services/service-3 && npm run test)
并使用 npx nyc ./test.sh
启动它,但如果 service-1
上的测试失败,service-2
和 service-3
仍将执行并被视为成功,尽管第一个服务失败.
如果您执行单个命令链的测试,脚本退出代码将映射第一个失败的测试(如果没有测试失败,则映射最后一个成功的测试)
#!/bin/bash
cd ./services/service-1 && npm run test \
&& cd ../service-2 && npm run test \
&& cd ../service-3 && npm run test
我正在寻找一种方法来管理测试并覆盖具有多个微服务的项目,这些微服务在其目录中有自己的测试。
└── services
├── service-1
│ ├── src
│ └── test
├── service-2
│ ├── src
│ └── test
└── service-3
├── src
└── test
每个服务都有自己的测试,它们都需要从自己的 cwd 执行,以使要求和路径正常工作。
从项目的根启动这些测试并让 nyc 覆盖整个项目的最佳方法是什么?
截至目前,我正在使用 bash 脚本 test.sh
:
#!/bin/bash
set +e
(cd ./services/service-1 && npm run test)
(cd ./services/service-2 && npm run test)
(cd ./services/service-3 && npm run test)
并使用 npx nyc ./test.sh
启动它,但如果 service-1
上的测试失败,service-2
和 service-3
仍将执行并被视为成功,尽管第一个服务失败.
如果您执行单个命令链的测试,脚本退出代码将映射第一个失败的测试(如果没有测试失败,则映射最后一个成功的测试)
#!/bin/bash
cd ./services/service-1 && npm run test \
&& cd ../service-2 && npm run test \
&& cd ../service-3 && npm run test