test-queue 环境变量完全清单:11 个参数精准控制你的并行测试

发布时间:2026/8/22 13:31:42

test-queue 环境变量完全清单:11 个参数精准控制你的并行测试
test-queue 环境变量完全清单11 个参数精准控制你的并行测试【免费下载链接】test-queueparallel test runner for CI environments项目地址: https://gitcode.com/gh_mirrors/te/test-queuetest-queue 是一款专为 CI 环境打造的 Ruby 并行测试运行器parallel test runner通过中心化队列把测试用例动态分配给多个 worker实现最慢的测试最先跑。它的 11 个环境变量覆盖了从单机并行到多机分布式的全部场景本文带你逐个吃透让每一次并行测试都快人一步。 30 秒上手为什么需要它test-queue 采用 master pre-fork worker 模型master 启动一个 socket 服务多个 worker 从共享队列里抢测试任务。与按文件切分的并行方案不同它的队列是动态的——哪个 worker 空闲下一个测试就分给谁天然负载均衡。以 Minitest 为例一条命令即可并行运行$ minitest-queue $(find test/ -name *_test.rb)它内置 minitest-queue、rspec-queue、testunit-queue 三个可执行入口位于 exe/ 目录也支持继承 TestQueue::Runner 编写自定义 runner。所有行为都通过环境变量控制先看 11 个参数的速查表。 11 个环境变量速查表环境变量默认值作用TEST_QUEUE_WORKERS全部可用核心数每个 master 的 worker 数量TEST_QUEUE_VERBOSE0不输出实时显示每个 worker 的结果TEST_QUEUE_SOCKET/tmp/test_queue_XXXXX.sockworker 与 master 通信的 socket 路径或 TCP 地址TEST_QUEUE_STATS.test_queue_stats测试耗时统计缓存文件路径TEST_QUEUE_FORCE无只运行指定测试白名单TEST_QUEUE_EARLY_FAILURE_LIMIT无单 worker 失败达到阈值立即终止整轮运行TEST_QUEUE_SPLIT_GROUPSfalse按单个用例而非整个测试组拆分任务TEST_QUEUE_RELAY无分布式模式中央 master 的 TCP 地址TEST_QUEUE_RELAY_TOKEN随机生成分布式模式各 master 间的认证令牌TEST_QUEUE_RELAY_TIMEOUT30 秒分布式模式远程 master 重连等待时间TEST_QUEUE_REMOTE_MASTER_MESSAGE无分布式模式远程 master 的自定义标识 本地并行4 个基础参数1. TEST_QUEUE_WORKERS设置 worker 数量别设成 0默认读取全部 CPU 核心数Linux 读 /proc/cpuinfomacOS 调 sysctl其他系统默认 2。如果数据库连接数有限建议调低$ TEST_QUEUE_WORKERS4 minitest-queue test/**/*_test.rb⚠️ 设置为 0 或负数会直接报错 Worker count must be greater than 0实现见 lib/test_queue/runner.rb 第 85 行附近。2. TEST_QUEUE_STATS耗时统计让队列聪明起来这是 test-queue 的核心杀手锏每次运行后各测试的耗时会被缓存到统计文件默认 .test_queue_stats下次运行时队列按耗时从长到短排序把最慢的测试最先跑起来显著压缩总时长$ TEST_QUEUE_STATS/var/cache/my_app/test_queue_stats rspec-queue spec统计文件会自动清理 8 天未出现的测试记录无需手动维护见 lib/test_queue/stats.rb 的 prune 逻辑。3. TEST_QUEUE_SOCKET通信方式本地用 socket / 跨机用 TCPmaster 和 worker 通过它通信。默认是 /tmp 下的 Unix socket 文件跨机器通信时改成地址:端口的 TCP 形式。分布式模式下中央 master 必须设为0.0.0.0:端口才能被远程 master 连上。4. TEST_QUEUE_VERBOSE实时看到测试进度默认只有测试失败时才输出 worker 内容设置后每个 worker 一完成就实时打印结果适合本地调试。项目自己的测试就是这么跑的见 Rakefile$ TEST_QUEUE_WORKERS2 TEST_QUEUE_VERBOSE1 minitest-queue test/*_test.rb 精确控制3 个进阶参数5. TEST_QUEUE_FORCE白名单只跑指定测试排查回归、只验证几个关键用例时用逗号分隔的白名单直接指定要跑的 suite且运行顺序与你的列表顺序保持一致$ TEST_QUEUE_WORKERS1 TEST_QUEUE_FORCEMinitestSleep11,MinitestSleep8 minitest-queue test/example.rb⚠️ 如果列表里写了不存在的测试名运行会直接报错 Failed to discover ... 并终止——好处是避免了以为跑了其实没跑的假绿灯。6. TEST_QUEUE_EARLY_FAILURE_LIMIT连续失败立刻拔插头当某个 worker 累计失败数达到该值它会向 master 发送 KABOOM 信号立即终止整轮运行并汇报结果见 lib/test_queue/iterator.rb。环境挂了、数据库起不来时能帮你省下等几十个 worker 跑完的漫长等待$ TEST_QUEUE_EARLY_FAILURE_LIMIT5 rspec-queue spec 此参数目前仅在代码中生效官方 README 尚未收录属于较新的能力。7. TEST_QUEUE_SPLIT_GROUPS按用例拆分短耗时测试更快默认以整个测试组为调度单位设为 true 后拆到单个用例级别对 setup 很短的测试如 Selenium提速效果明显。RSpec不需要拆分的 group 打上:no_split标签即可豁免见 lib/test_queue/runner/rspec.rbTestUnit标记no_split属性的用例不参与拆分见 lib/test_queue/runner/testunit.rb 分布式模式4 个协作参数当单台机器算力不够可以启动多台远程 master共享同一个中央 master 的队列结果统一回传。README.md 的 Distributed mode 章节给出了完整示例# 中央 master先启动监听 TCP $ TEST_QUEUE_RELAY_TOKEN123 TEST_QUEUE_SOCKET0.0.0.0:12345 minitest-queue ./test/example_test.rb # 远程 masterTOKEN 必须一致 $ TEST_QUEUE_RELAY_TOKEN123 TEST_QUEUE_RELAY0.0.0.0:12345 minitest-queue ./test/example_test.rb8. TEST_QUEUE_RELAY指向中央 master指定中央 master 的地址:端口。一旦设置本实例就进入 relay 模式不自己发现 suite、不自己调度全部交给中央 master 统一分派完成后把 worker 结果回传。9. TEST_QUEUE_RELAY_TOKEN分布式门禁各远程 master 必须携带与中央 master 相同的 TOKEN 才能接入。不设置时每次运行都会随机生成一个新令牌所以分布式场景下两边必须显式设置成相同的值。令牌不匹配的 worker 会被中央 master 以 WRONG RUN 拒之门外有效防止两轮构建互相串台。10. TEST_QUEUE_RELAY_TIMEOUT等得起才跑得成远程 master 启动时中央 master 可能还没就绪该参数控制重连等待的秒数默认 30 秒。CI 中启动脚本错峰严重时建议调大避免远程 master 白等超时退出。11. TEST_QUEUE_REMOTE_MASTER_MESSAGE给远程 master 留个签名设置后该远程 master 连入中央 master 时会附带这段自定义消息比如构建页面 URL在多机日志中一眼定位是哪台机器排查问题更方便。 最佳实践与常见坑CI 里固定统计文件路径给 TEST_QUEUE_STATS 指定一个持久化目录跨 build 复用耗时数据调度才越跑越准。别把 RELAY 和 SOCKET 设成同一个值代码检测到两者相等时会强制关闭 relay 模式并打印警告。worker 数别超过数据库连接池每个 worker 都是独立 fork 出的进程连接数约等于 worker 数超了会互相抢连接。浏览器测试开 SPLIT_GROUPS单用例粒度调度尾延迟更低。FORCE 白名单要核对名字名字写错不会静默跳过而是整轮失败——这是特性不是 bug。 延伸阅读环境变量核心实现lib/test_queue/runner.rbKABOOM 早停逻辑lib/test_queue/iterator.rb耗时统计与 8 天清理策略lib/test_queue/stats.rb内置可执行入口exe/minitest-queue、exe/rspec-queue、exe/testunit-queue分布式模式官方示例README.md【免费下载链接】test-queueparallel test runner for CI environments项目地址: https://gitcode.com/gh_mirrors/te/test-queue创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Switch 如何串流 3A PC 游戏?Moonlight-Switch 部署与调参完整指南

Switch 如何串流 3A PC 游戏?Moonlight-Switch 部署与调参完整指南

2026/8/22 13:21:42

Switch 如何串流 3A PC 游戏?Moonlight-Switch 部署与调参完整指南 【免费下载链接】Moonlight-Switch Moonlight port for Nintendo Switch 项目地址: https://gitcode.com/gh_mirrors/mo/Moonlight-Switch 想在 Switch 上玩 PC 3A 大作?开源项目…

TestDisk 与 PhotoRec 免费数据恢复完整指南:如何完成分区恢复与文件恢复

TestDisk 与 PhotoRec 免费数据恢复完整指南:如何完成分区恢复与文件恢复

2026/8/22 13:21:42

TestDisk 与 PhotoRec 免费数据恢复完整指南:如何完成分区恢复与文件恢复 【免费下载链接】testdisk TestDisk & PhotoRec 项目地址: https://gitcode.com/gh_mirrors/te/testdisk 文件夹被误删、回收站已清空、分区在磁盘管理里突然消失——先停止对目标…

云办(云南)企业管理有限公司靠谱吗?昆明本地财税服务怎么判断

云办(云南)企业管理有限公司靠谱吗?昆明本地财税服务怎么判断

2026/8/22 13:21:42

云办(云南)企业管理有限公司是一家位于昆明市盘龙区的本地企业服务机构,主要面向初创公司、小微企业、个体工商户,以及电商、餐饮、建筑工程、科技、贸易、服务业等经营主体,提供工商注册、代理记账、报税、税务咨询、…

小众平台也能做内购:flutter_inapp_purchase 在 Kindle、Fire TV 与 Horizon OS 上的完整配置指南

小众平台也能做内购:flutter_inapp_purchase 在 Kindle、Fire TV 与 Horizon OS 上的完整配置指南

2026/8/22 14:31:45

小众平台也能做内购:flutter_inapp_purchase 在 Kindle、Fire TV 与 Horizon OS 上的完整配置指南 【免费下载链接】flutter_inapp_purchase Flutter In App Purchase plugin that confirms OpenIAP 项目地址: https://gitcode.com/gh_mirrors/fl/flutter_inapp_p…

如何训练NetVLAD: trainWeakly弱监督三元组损失与困难负样本挖掘全流程图解

如何训练NetVLAD: trainWeakly弱监督三元组损失与困难负样本挖掘全流程图解

2026/8/22 14:31:45

如何训练NetVLAD: trainWeakly弱监督三元组损失与困难负样本挖掘全流程图解 【免费下载链接】netvlad NetVLAD: CNN architecture for weakly supervised place recognition 项目地址: https://gitcode.com/gh_mirrors/ne/netvlad NetVLAD 是面向弱监督地点识别&#xf…

Simple-BEV几何工具库utils/geom详解:坐标系变换约定与4x4矩阵运算新手完全指南

Simple-BEV几何工具库utils/geom详解:坐标系变换约定与4x4矩阵运算新手完全指南

2026/8/22 14:31:45

Simple-BEV几何工具库utils/geom详解:坐标系变换约定与4x4矩阵运算新手完全指南 【免费下载链接】simple_bev A Simple Baseline for BEV Perception 项目地址: https://gitcode.com/gh_mirrors/si/simple_bev Simple-BEV 是一个知名的多传感器 BEV&#xff…

用CSWin Transformer做语义分割:基于mmsegmentation的ADE20K UPerNet实战教程

用CSWin Transformer做语义分割:基于mmsegmentation的ADE20K UPerNet实战教程

2026/8/22 14:31:45

用CSWin Transformer做语义分割:基于mmsegmentation的ADE20K UPerNet实战教程 【免费下载链接】CSWin-Transformer CSWin Transformer: A General Vision Transformer Backbone with Cross-Shaped, CVPR 2022 项目地址: https://gitcode.com/gh_mirrors/cs/CSWin-…

pciutils名称查找机制源码解析:pci.ids、缓存、hwdb与DNS查询的完整链路

pciutils名称查找机制源码解析:pci.ids、缓存、hwdb与DNS查询的完整链路

2026/8/22 14:31:45

pciutils名称查找机制源码解析:pci.ids、缓存、hwdb与DNS查询的完整链路 【免费下载链接】pciutils The PCI Utilities 项目地址: https://gitcode.com/gh_mirrors/pc/pciutils 运行 lspci 时,你能看到 "Intel Corporation"、"NVI…

不配证书,3步抓通安卓App全部流量

不配证书,3步抓通安卓App全部流量

2026/8/22 14:21:44

不配证书,3步抓通安卓App全部流量 【免费下载链接】r0capture 安卓应用层抓包通杀脚本 项目地址: https://gitcode.com/gh_mirrors/r0/r0capture 装完App想看看它到底发了什么请求,结果证书校验全挡住了?r0capture是一款基于Frida的安…

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

2026/8/21 21:41:19

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

2026/8/22 11:09:22

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

2026/8/22 11:09:22

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

多尺度智能体控制:从宏观密度场到微观决策的架构与实践

多尺度智能体控制:从宏观密度场到微观决策的架构与实践

2026/8/22 0:00:52

1. 从宏观到微观:多尺度智能体控制的核心挑战在智能体(Agent)技术日益普及的今天,我们面临着一个越来越普遍的难题:如何同时管理成千上万个,甚至百万级别的智能体?无论是城市交通中的自动驾驶车…

CUBE标准:统一AI智能体评测的度量衡与架构解析

CUBE标准:统一AI智能体评测的度量衡与架构解析

2026/8/22 0:00:52

1. 项目概述:为什么我们需要一个统一的智能体评测标准?最近在折腾各种AI智能体项目,从简单的自动化脚本到复杂的多模态交互系统,我发现了一个让人头疼的共性问题:评测。每次开发完一个智能体,想看看它到底行…

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

2026/8/22 0:00:52

在电子硬件开发领域,PCB(印制电路板)的沉金工艺是提升产品可靠性和焊接质量的关键环节。对于需要高密度互连、长期稳定运行或高频信号传输的板卡,如“黍姐仿通行证”这类可能涉及身份识别、数据交互的硬件项目,选择正确…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/22 2:02:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/22 4:13:47

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/22 1:32:34

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…