# 绿色构建和一个从未被执行过的核心流程,可以同时成立 > 绿色构建和一个从未被执行过的核心流程,可以同时成立。 一个项目一路绿灯:构建全过,单元测试全过。直到某天有人问了一句"有没有测试完整跑过一遍主流程?"——翻遍测试目录才发现,答案是 - Canonical page: https://obelisk.club/blog/build-log-828 - Author: Peter Zhang - Published: 2026-10-11 - Tags: build-log 绿色构建和一个从未被执行过的核心流程,可以同时成立。 一个项目一路绿灯:构建全过,单元测试全过。直到某天有人问了一句"有没有测试完整跑过一遍主流程?"——翻遍测试目录才发现,答案是没有。不是主流程的测试挂了,是这样的测试从来不存在。应用存在的理由,恰好是所有测试都没碰过的地方。 为什么它能藏这么久:缺席的测试不会让任何东西变红。单元测试验证的是零件,通过率描述的也只是零件;"绿"是对跑过的部分的陈述,对没跑过的部分一言不发。模板生成的测试目标里堆满边界用例和辅助断言,看起来就像覆盖到位了。 修的顺序有讲究: 1. 先搭骨架。写一个只做"启动应用、断言界面活着"的端到端 UI 测试,让它先进 CI 跑起来。骨架先行把"管道通不通"和"流程对不对"拆成两个独立的问题,之后失败时你知道该查哪一半;先写完整流程再调,一次失败分不清是环境还是用例。 2. 再填真实流程。只写应用存在的理由所支撑的那一条路径,从头点到尾,断言终态而不是中间日志。 3. 最后堵住退路。主流程测试和其它测试进同一个套件,被跳过或被删掉的主流程测试一律当红色处理——"缺席"正是最初的故障形态。 一分钟自检:在测试代码里搜,有没有一个测试会启动应用并走完主流程?更狠的一步:注释掉主流程依赖的一行,跑整套测试。还是绿的?那你的核心路径其实没有测试,你的绿色只覆盖了边缘。