我们有大约 400 多个 TestCafe js 文件,我们每晚通过 CI/CD 管道运行这些测试。我们现在的问题是,它在完成测试之前需要花费很多时间。我们计划做的是将这些测试拆分为至少 4 个。现在我的问题是:我们如何在 4 个实例中运行 TestCafe,每个实例运行拆分测试?
例如: 实例 1 - 运行测试 #1 - #100 实例 2 - 运行测试 #101 - #200 实例 3 - 运行测试 #201 - #300 实例 4 - 运行测试 #301 - #400
我们有大约 400 多个 TestCafe js 文件,我们每晚通过 CI/CD 管道运行这些测试。我们现在的问题是,它在完成测试之前需要花费很多时间。我们计划做的是将这些测试拆分为至少 4 个。现在我的问题是:我们如何在 4 个实例中运行 TestCafe,每个实例运行拆分测试?
例如: 实例 1 - 运行测试 #1 - #100 实例 2 - 运行测试 #101 - #200 实例 3 - 运行测试 #201 - #300 实例 4 - 运行测试 #301 - #400
您可以使用夹具或测试元数据,然后在每个实例中执行不同的命令。
例如,您使用夹具元数据:
fixture `My fixture`
.meta('instance', '1')
// and somewhere else:
fixture `My fixture`
.meta('instance', '2')
然后仅在具有特定元数据的夹具中运行测试:
$ testcafe chrome my-tests --fixture-meta instance=1
或者您可以将这些夹具文件分组在不同的目录中,然后仅从特定目录运行测试:
$ testcafe chrome ./Tests/instance-one/*.js
我想我已经找到了解决自己问题的方法。我已经安装了这个名为npm-run-all 的包
我在 package.json 中添加了拆分测试
"test:split1": "testcafe chromium src-compact/SplitTest1.js --skip-js-errors",
"test:split2": "testcafe chromium src-compact/SplitTest2.js --skip-js-errors",
"test:parallel": "npm-run-all -p test:split1 test:split2"
然后通过运行以下命令执行它:
npm run test:parallel