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

GitLab无需拆分文件夹,如何并行单文件夹内的Python单元测试?

实现方案:无需拆分文件夹即可并行运行folder1内的测试

完全可以做到,不需要手动拆分folder1的子文件夹,通过GitLab CI的矩阵配置结合Python测试框架的分片功能就能实现。具体步骤如下:

1. 调整GitLab CI的并行矩阵配置

修改原有的矩阵,为folder1单独分配x个worker实例,其他文件夹保持单实例运行:

Unit tests - components:
  ...
  variables:
    ...
  parallel:
    matrix:
      # 为folder1创建x个并行任务,每个任务对应一个分片ID
      - component: folder1
        test_shard: [1, 2, 3]  # 这里的数量x可按需调整,比如设为3个worker
      # 其他文件夹各用1个worker执行
      - component: folder2
      - component: folder3

2. 在测试执行脚本中添加分片逻辑

根据CI变量判断是否为folder1的任务,使用测试框架的分片参数拆分测试用例:

# 假设使用pytest作为测试框架(pytest 7.0+支持原生分片)
if [[ "$component" == "folder1" ]]; then
  # 按分片ID和总分片数运行folder1的测试
  python -m pytest $component/ --shard-id $test_shard --num-shards 3
else
  # 正常执行其他文件夹的全部测试
  python -m pytest $component/
fi

补充说明

  • 如果使用unittest框架,可借助第三方工具(如unittest-parallel)实现分片,或自行编写逻辑按测试用例的哈希值分配到不同分片
  • 矩阵中test_shard列表的长度就是folder1使用的worker数量,可根据folder1的测试量灵活调整
  • 整个过程无需修改folder1的目录结构,完全通过测试工具的分片能力实现并行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 04:08:27