2026年新兴CI/CD测试工具全景:五大阵营与选型落地指南

我在整理2026年新兴CI/CD测试工具全景报告时,最直观的感受是:工具赛道已经从一个“能跑通流水线”的时代,进入了“能让测试活动在流水线里被精确调配”的时代。这份报告不是为了罗列新名字,而是想回答一个更实际的问题:当团队规模、服务数量、发布频率都上来之后,哪些正在冒头的工具值得你花时间去试,哪些只是换了个壳。

过去两年,大家聊CI/CD测试工具,讨论最多的是“能不能接入现有流水线”“支持多少种测试框架”。到了2026年,问题变成了“它能不能帮我决定这次版本要跑哪些测试”“能不能在测试失败时自动缩小问题范围”“能不能让测试数据和真实流量混在一起而不互相污染”。这些需求变化,直接推动了一批新兴工具的出现,也让传统流水线平台不得不往测试编排的方向靠拢。

这篇内容会从我的调研视角,把这半年看到的工具趋势、分类方式、选型逻辑和落地路径完整梳理一遍。适合正在做工具选型的技术负责人、DevOps工程师、测试架构师,也适合想了解行业水位的一线开发者。我不打算做成产品介绍合集,而是尽量讲清楚“每个工具形态解决什么问题”“为什么它是长在2026年的需求上”以及“你拿到手之后怎么判断值不值得用”。

1. 2026年CI/CD测试工具为什么会变天

1.1 从“流水线即代码”到“测试即代码”:核心需求变了

前几年,CI/CD测试工具的核心卖点是流水线编排。大家把构建、部署、测试写成一堆YAML,塞进统一平台,能跑、能看日志、能发通知,就已经算不错。但到了2026年,这套逻辑明显不够用了。

最直接的原因是测试本身的复杂度上去了。微服务的数量在涨,每个服务都有自己的单元测试、集成测试、契约测试、端到端测试,再加上性能回归和混沌测试,一个中大型项目可能有两万到五万个测试用例。如果每次发布都全量跑一遍,构建机成本先不说,光是等待时间就能把研发节奏拖垮。

所以2026年的新兴工具,几乎都在做同一件事:把测试从“流水线里的一个阶段”变成“可被分析和决策的对象”。也就是所谓“测试即代码”的进阶——测试不仅是代码仓里的一份文件,更是工具链里可以被版本化、被调度、被切片、被评估的一等公民。

我调研下来,这个转变带来了三个具体能力需求。第一个是测试选择,根据代码变更范围推断影响面,只跑必要的测试。第二个是测试分析,能够把失败用例自动聚类,定位到可能引入问题的提交。第三个是测试环境策略,不再固定维护一套全套环境,而是按需生成、按需销毁、甚至允许测试流量与影子流量并存。

这些能力,普通流水线平台做不了,或者做得很浅。因为传统流水线关注的是“流程编排”,它眼睛里只有任务节点,没有测试用例之间的关系。新兴工具则从测试数据的维度重新建模,所以能在流程之上提供智能决策。这是2026年工具生态分水岭出现的最根本原因。

1.2 三类力量在重构工具链

除了需求端的变化,供给端也有三股力量在推动工具形态更新。

第一股是云原生基础设施的普及。Kubernetes已经成了事实上的部署标准,这意味着测试环境可以像容器一样快速起停。以前一套环境部署半小时,现在按需拉起只需要几分钟。工具如果还停留在“用虚拟机托管测试环境”的思路,就很难跟上节奏。新兴工具普遍把环境供给做成了底层能力,用CRD描述测试环境,用控制器管理生命周期,测试任务结束后自动回收资源。这不是加分项,而是入场券。

第二股是AI辅助测试的落地。2025年是AI生成用例的元年,2026年终于开始收敛到几个可靠场景:用大模型根据需求文档补齐边界用例、在测试失败时对日志做摘要和根因分析、把历史构建数据训练成回归预测模型。工具链里开始出现专门做这些事的中间件,而不是每个团队自己调大模型接口。这类工具表面上是“AI功能”,本质上是在测试数据和模型推理之间建了一条标准通道,让原本靠人肉经验的事情变成可复用的服务。

第三股是成本治理的倒逼。2026年很多技术团队的费用中心里,CI/CD和测试环境占了相当大一块。算力、存储、流量回放、长期保留的日志,每一项都在烧钱。新兴工具普遍把成本可观测性做得很重,能告诉你每一个测试用例花了多少钱,每套环境每小时多少钱,测试数据存储每月增长多少。以前这是报表团队的活,现在变成工具的内置能力。这一点在选型时特别值得注意,因为省钱和效率一样是硬需求。

2. 新兴工具生态全景:我看到的五大阵营

2.1 云原生流水线与测试调度基础平台

第一类工具是云原生流水线的升级版。它们不再满足于做构建和部署,而是把测试调度当成流水线的核心能力。典型特征是支持高并发的分布式任务队列,能够在多个集群之间动态分发测试任务,并且具备任务级和用例级的重试策略。

和传统流水线相比,差异化在调度策略上。传统工具默认的队列模型是“先进先出”,一个任务卡住,后面全部排队。2026年出现的新工具引入了优先级抢占、依赖感知调度和成本感知调度。比如一个只有50个用例的冒烟测试,可以被直接调度到空闲节点上立即执行,而不是排在三小时的集成测试后面。再比如深夜时段的回归测试包,会被调度到竞价实例上执行,成本降低到白天的一半。

我实测下来,这类工具还有一个隐藏优势:测试分区跑被做成了默认能力。不需要自己写脚本去拆测试集,工具会根据历史耗时自动估算每个分片的最优大小,并把分片分发给多个节点。原来一排两小时的测试,分片之后可能十分钟就跑完了。代价是需要为每个测试框架写适配插件,但主流语言和测试框架基本都有现成的。

2.2 测试编排与智能分析工具

第二类工具是2026年增长最猛的方向,它独立于流水线平台,专门做测试生命周期的编排与分析。你可以在流水线里调用它,也可以把它当成一个测试运营中心。

这类工具的核心能力有几个:跨流水线编排、失败聚类、影响面分析、变更驱动的测试选择。以测试选择为例,工具会读取Git提交差异,通过代码调用图映射到对应模块的测试用例,再结合历史执行数据给出“建议执行集合”。它不会完全替代人工判断,但能把要跑的用例数量和全量回归相比减少50%到70%。

影响面分析做得好不好,关键在于代码和数据资产的质量。刚接入的时候,工具需要通过一次全量执行来建立基线,然后把测试用例和代码模块的关联关系逐步沉淀。这个过程至少需要两到四个版本的迭代,不能指望开箱即用。我见过一些团队因为“基线还没建完”就迫不及待关掉全量回归,结果漏测上线,这属于导入方式的问题,不是工具能力的问题。

2.3 环境供给与测试数据服务工具

第三类要重点讲,因为最容易被低估。2026年CI/CD测试中的一个核心瓶颈,其实不是测试用例跑不起来,而是环境没有、数据不对。新兴的环境供给工具把测试环境做成了“按模板声明、按需拉起”的自助服务。

它们通常基于Kubernetes,通过一个环境描述文件定义需要哪些服务、多少副本、什么样的依赖。开发者提交一个合并请求,工具就自动创建一套独立环境,代码更新后自动同步,合并完成后自动销毁。整个过程不需要人工申请、审批和配置。

测试数据服务工具则是另一个刚需。以前的测试数据是“一份SQL脚本到处跑”,2026年的趋势是数据快照、数据脱敏、数据构造三合一。工具可以实时从生产环境摘取数据子集,经过脱敏后灌入测试环境,保证测试数据的真实性和合规性。这解决了很多团队一直头疼的问题:测试环境数据陈旧,测不出生产环境才会暴露的边界问题。

我在落地过程中踩过的坑是,数据快照工具如果和企业内部的敏感数据规范配合不好,很容易变成合规风险点。所以选这类工具的时候,不要只看它“能不能取数”,还要看它“能不能公平地脱敏”,以及脱敏规则是否可审计、可回滚。

2.4 质量门禁与反馈闭环工具

第四类工具聚焦在“测试完之后怎么办”。传统做法是测试失败就发一条消息,测试覆盖率低于阈值就亮红灯。2026年的质量门禁工具强调的是“证据链”和“策略化决策”。

工具会汇总各层测试的产物、覆盖率、故障耗时、历史趋势,甚至包括代码审查状态,然后根据策略计算出“这次构建是否可以发布”。和传统门禁相比,它不再是简单地卡一个数字,而是能够给出解释:为什么阻止发布?是覆盖率下降了,还是某个模块的失败率异常上升?

反馈闭环工具则解决了测试产出无人看的问题。它们会把失败用例自动整理成带有运行日志、环境信息、关联提交的报告,并智能路由给对应的责任人。如果某个测试连续失败超过指定次数,工具会自动降级它的执行优先级,并通知测试负责人确认“是产品缺陷还是测试用例需要更新”。这个机制看着简单,实际减少了团队大量痛苦的赃活累活。

2.5 可观测性与流量回放集成工具

第五类工具是测试环节向可观测性和生产流量延伸的结果。代表形态是流量回放工具、链路追踪与测试结合的诊断工具、环境差异分析工具。

流量回放听起来高级,实际上解决的问题很具体:测试环境跑的接口逻辑和生产环境不一致,很多问题只有生产流量才能触发。新兴工具会从生产网关复制真实请求,脱敏后在测试环境重新执行,再对比响应差异。这比手工构造测试数据更能覆盖边界情况,尤其适合交易、推荐、搜索这类业务。

链路追踪集成工具则解决了“测试失败但看不出哪一环出错”的痛点。它们把一次测试请求生成的Trace和Assertion关联起来,测试失败时直接跳到对应Span看耗时和异常。我试用过几个方案,效果差别很大,判断标准是:能不能在现有监控平台里直接跳转,如果要求你单独部署一套追踪系统,落地阻力会大很多。

3. 工具选型评估框架:怎么筛才不踩坑

3.1 评估维度设计

看了一堆工具之后,我发现团队选型时最容易犯的毛病是只看演示和功能列表。2026年新兴工具普遍功能列表很长,但真正决定成败的往往是列表之外的东西。我自己用的评估框架包含五个维度,每个维度权重不同:

  • 架构适配度(25%):工具是否匹配你的集群环境、代码平台、技术栈。强行引入一套需要改基础设施的工具体系,成本极高。
  • 数据闭环能力(25%):工具能否产生可积累的数据,比如测试基线、历史耗时、失败趋势。数据能否导出,能否被下游消费,决定了它是不是一次性工具。
  • 成本模型透明性(20%):运行这套工具本身要占多少资源,存储和计算的账单是否清楚。有些工具表面上免费,实际运行成本比你省的还多。
  • 可维护性(15%):升级会不会破坏配置,插件体系是否健康,出了问题能不能自己排查。开源项目还要看社区活跃度和核心维护者的响应速度。
  • 使用体验(15%):接入门槛、文档完整度、排查问题的便利性。这个维度很主观,但恰恰最影响团队愿不愿意长期用。

这个权重不是固定的。如果是小团队,架构适配度和使用体验的权重要提高;如果是平台型团队,数据闭环和成本模型更关键。评估的目的不是选一个“绝对最好”的工具,而是选一个“当前阶段最不难受”的工具。

3.2 三个虚构场景的打分示例

拿三个例子来演示怎么用。第一个是某互联网公司的平台工程团队,大概三十多个微服务,每周发布两百多次。他们最在意的是跨流水线的测试编排和失败聚类,因为测试用例数量大,排查成本高。按我的框架打分,云原生调度平台和智能分析工具得分最高,因为前者解决了并行度,后者解决了失败定位,恰好打中痛点。

第二个是某传统企业内部的研发效能团队,应用数量不多但测试环境的申请流程特别重。他们最需要的是环境供给工具,把部署准备时间从两天压缩到两小时。此时架构适配度和使用体验占主导,智能分析这类重数据资产累积的工具反而排后,因为业务节奏相对慢,影响面分析的价值没被验证。

第三个是某创业公司的全栈团队,只有十个人,技术栈简单,但希望把CI/CD和测试工具一起搭建起来。他们应该优先选一体化的云上流水线,配合轻量级测试选择能力。这个阶段不需要五个工具拼在一起,因为每多一个工具,就意味着多一份维护成本和学习成本。

打分表的好处是把隐性价值显性化。记得在表格里加一列“实际落地难度”,别只看抽象评分。很多工具在演示环境里很流畅,一接入企业内部的权限体系就变得难以驾驭。

4. 从报告到落地:我建议的导入路径

4.1 渐进式改造的五个阶段

即使选定了工具,也不建议一次性全部铺开。我见过很多团队在头两周热情高涨,把所有流水线切成新平台,结果一个月后又退回老平台。更稳妥的做法是分五个阶段走。

第一个阶段是盘点。梳理现有流水线里有多少测试任务、每个任务的平均耗时、失败率、资源占用。这个阶段不做任何引入,只是建立基线数据。没有基线,后面就无法证明新工具比老方案好。

第二个阶段是试点。挑一两个有代表性但不核心的服务,接入新工具的测试选择功能。注意只做并行,不做替换。把新老工具同时跑起来,对比结果的一致性。这一步的目的是验证工具的决策准不准,而不是图快。

第三个阶段是铺开。试点稳定后,逐步把更多服务的测试调度迁移过来。这个阶段最容易出问题的是团队配合度,需要提前做好文档和培训。我建议让每个服务团队的负责人亲自参与配置迁移,而不是由平台团队代劳,因为他们最清楚哪些测试可以跳过、哪些测试必须跑。

第四个阶段是治理。当工具跑起来后,开始配置质量策略、成本预算、失败升级机制。这个时候工具才真正变成“管理对象”,而不是一个脚本集合。需要定期复盘:测试选择有没有引入漏测?数据有没有过期?成本有没有失控?

第五个阶段是优化。基于积累的数据反哺开发流程,比如调整测试分层策略、合并重复用例、优化环境启动顺序。到这个阶段,工具带来的价值已经不是“省时间”,而是让整个研发过程可度量、可预测。

4.2 团队协作方式和迁移要点

工具选型和落地从来不是纯技术问题,它牵扯到研发、测试、运维三方的分工。我在实操中越来越觉得,2026年更适合的方式是让平台工程团队提供“能力”,让业务团队通过自助界面按需使用。

具体到协作方式,平台团队负责工具的部署、升级、提供模板和默认策略;业务团队负责在自己服务的上下文里配置规则、分析失败原因、调整测试选择策略。这样不会出现“平台建好但没人会用”的尴尬。

迁移时有一个要点很容易被忽略:新旧工具并行期不要太短。至少要有一个完整的发布周期,让新工具拿到足够多的比对数据。我见过最短的并行期是一周,结果新工具选择的测试集合频繁和全量测试结果不一致,团队直接失去了信任。并行期拉长到两个版本,让交付团队看到新工具的准确率是稳定上升的,再切换,心理阻力会小很多。

5. 常见问题与排查技巧实录

5.1 并行度失控:不是越多越好

很多团队刚开始用分布式测试调度,第一反应是把并行度调到最大。结果遇到了两类问题:一是下游依赖的服务被压垮,数据库连接数瞬间打满;二是测试之间的共享状态冲突,出现随机失败。

解决思路不是调低并行度,而是给测试任务打标签。按依赖类型分:可以完全并行、依赖共享数据库、依赖外部服务。不同类型的任务使用不同的调度策略。比如依赖外部服务的任务使用信号量控制并发数量,共享数据库的任务使用锁或者独立Schema。这个标签体系要在接入早期就建立,后期补的成本很高。

5.2 测试数据污染:智能选择的隐形杀手

测试选择工具如果选出来的命中用例在执行时数据相互覆盖,就会出现诡异的失败,浪费大量排查时间。典型场景是A用例改了用户状态,B用例又用同一套数据跑,结果和预期不符。

排查方法是在测试数据工具里开启快照隔离,或者给并行分片分配独立数据分区。如果工具不支持,建议先用串行模式跑高关联用例集合,把并行能力留给真正独立的测试。我自己的经验是,数据隔离能力决定了测试选择工具能不能真正跑起来。

5.3 反馈延迟:工具链越长,噪音越多

引入工具链之后,一个常见抱怨是“失败通知变多了,但没人看得过来”。这不是工具的问题,是反馈设计的问题。我习惯用分层通知策略:冒烟测试失败,直接通知提交者;集成测试失败,汇总后每十分钟通知一次;覆盖率下降,只在日报中体现。减少通知数量,提高通知质量,团队对工具的信任度反而会提升。

5.4 快速排查速查表

症状可能原因第一检查点
测试随机失败数据未隔离或并行冲突检查数据分区与锁配置
测试选择后漏测上线影响面模型未覆盖间接依赖查看代码调用图完整度
环境拉起慢基础镜像过大或缓存未命中检查镜像分层与缓存策略
失败用例无法定位链路追踪与断言未关联检查Trace ID透传
成本无明显下降资源回收策略未生效检查环境销毁定时任务
工具间数据不一致接入方式不同或版本差异核对两边采集逻辑

排查时记得先看“数据链路”而不是“功能配置”。大部分工具问题的根源不在配置本身,而在配置背后有没有稳定的数据来源。一个原则是:先确认输入数据对,再怀疑工具算法错。

我个人在实际操作中的体会是,2026年这些新兴CI/CD测试工具,本质上都在帮团队解决同一件事:用更少的资源,获得更可靠的测试结论。工具只是载体,真正值钱的是它能不能让你对每一次发布更有信心。选型的时候少被新概念牵着走,多问一句“它解决的是我现在的痛点,还是它想象中的痛点”,基本上就不会犯大错。最后分享一个小技巧:不管你最后选了哪类工具,先别急着删掉老的流水线配置。把它保留在分支上,至少撑过两个线上版本,你会感谢这个决定。

相关新闻

ESP系统仿真:Carsim与Simulink联合仿真及单侧双轮制动控制实践

ESP系统仿真:Carsim与Simulink联合仿真及单侧双轮制动控制实践

1. ESP系统工作原理与单侧双轮制动选型上一阶段做底盘电控项目,在ESP系统仿真建模和验证上花了不少时间。我把Carsim整车模型和Simulink控制策略打通,完整跑了单侧双轮制动控制方法,把“车辆失稳怎么判断、目标横摆力矩怎么算、制动力怎么分配…

2026/10/22 17:48:32 阅读更多 →
BLE设备低功耗电源设计:PMIC与能量协同实战

BLE设备低功耗电源设计:PMIC与能量协同实战

老规矩,先讲一段我自己的经历。几年前我接手了一款带BLE上报功能的温湿度采集器,老板的要求很简单:两节AAA电池,要撑到“自然报废”。第一版我用的是某颗静态电流标称“微安级”的LDO,想着这总够省了吧。结果整机休眠电…

2026/10/22 20:15:46 阅读更多 →
S-Crescendo:嵌套Transformer如何编织大规模非线性系统

S-Crescendo:嵌套Transformer如何编织大规模非线性系统

最近在逐帧消化各类AI4Science的前沿工作,翻到一篇标题很值得玩味的论文——S-Crescendo: A Nested Transformer Weaving Framework for Scalable Nonlinear System in S-Do。单看这个标题,信息量就非常大:Crescendo是音乐里的“渐强”&#…

2026/10/22 15:46:43 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/22 10:18:38 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/22 11:01:53 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/22 9:44:47 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/22 10:42:00 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/22 10:40:08 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/22 10:56:37 阅读更多 →

日新闻

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/22 1:47:45 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/22 21:33:42 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/22 5:12:39 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 21:50:56 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 21:51:55 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/22 19:06:46 阅读更多 →