我想知道是否有人知道一个示例或一种简单的方法来实现跨多个服务器并行运行的 Jest。
我们有数千个测试,不断升级我们的 EC2 类型变得非常缓慢和令人厌烦。
想知道是否有办法分散负载。
我可以实现我们自己的......但我正在努力成为一个懒惰的开发人员。
这将取决于 jestjs(我个人不使用它所以不能说)。如果您能够运行测试的子集,则可以将负载分离到多个作业中。如果您有足够的运行器可用,同一阶段中的多个作业可以同时运行。
举个愚蠢的例子,如果您可以执行以下操作:
run tests 1-1000在一项工作中,
run tests 1001-2000在另一项工作中等等,那么它们可以并行运行。如果您在他们完成后上传测试报告,请确保给他们单独的名称,以免他们发生冲突/造成混淆。
一个例子.gitlab-ci.yml:
stages:
- build
- test
...
build:
# don't care at the moment
test_set_1:
stage: test
script:
- # run tests 1-1000
artifacts:
path: /path/to/test/report
name: "First Test Report"
test_set_2:
stage: test
script:
- # run tests 1001-2000
artifacts:
path: /path/to/test/report
name: "Second Test Report