You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TestCafe批量测试并行执行实现方案咨询

实现TestCafe按文件夹分组并行执行测试

可以实现你要的「实例1跑Folder1、实例2跑Folder2」的效果,但默认的--concurrency参数做不到——因为它是按单个测试文件粒度随机分配给并发实例,不会识别文件夹分组,所以才会出现两个实例都跑Folder1的情况。

下面是两种直接可行的方案:

方案一:启动独立TestCafe进程(推荐,无需修改测试代码)

直接启动两个独立的TestCafe进程,分别指定对应的文件夹路径,让它们同时运行:

Windows系统命令

start npx testcafe "chrome" .\e2e\regression\Folder1\**
start npx testcafe "chrome" .\e2e\regression\Folder2\**

Linux/macOS系统命令

npx testcafe "chrome" ./e2e/regression/Folder1/** &
npx testcafe "chrome" ./e2e/regression/Folder2/** &

如果想统一管理,可以把命令写到package.json的脚本里:

"scripts": {
  "test:parallel": "start npx testcafe chrome ./e2e/regression/Folder1/** & start npx testcafe chrome ./e2e/regression/Folder2/**"
}

之后运行npm run test:parallel即可一键启动两个并行进程。

方案二:用测试组标记(适合需要更灵活分组的场景)

如果后续需要按自定义逻辑分组,而非仅按文件夹,可以给不同文件夹的测试用例添加元数据标记:

  1. 在Folder1下的所有测试文件顶部,给fixture添加meta标记:
fixture`Folder1 测试集合`.meta('group', 'folder1');
  1. 在Folder2下的所有测试文件顶部,添加对应标记:
fixture`Folder2 测试集合`.meta('group', 'folder2');
  1. 同样启动两个独立进程,通过--meta参数筛选对应分组:
    Windows命令:
start npx testcafe "chrome" --meta group=folder1 .\e2e\regression\**
start npx testcafe "chrome" --meta group=folder2 .\e2e\regression\**

为什么原命令不行?

TestCafe的--concurrency=N是将所有匹配到的测试文件按顺序/随机拆分给N个浏览器实例,它不会识别文件夹作为分组单位。如果Folder1的文件数量比N多,就会出现多个实例都分配到Folder1文件的情况——这正是你遇到的问题。

内容的提问来源于stack exchange,提问作者newnick988888

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 01:13:14