← 中文资源

简体中文版本

本地与 CI 测试一致性工作流

对齐本地与 CI 的测试执行,使本地通过的测试在 CI 也通过,消除仅环境导致的失败。

阅读英文原文

目标

测试应在本地与 CI 表现一致。本工作流在两侧固定相同的运行时与工具版本,使用相同的容器镜像执行测试,为测试提供相同的环境变量,最后用一次故意破坏的测试验证两侧报告一致的失败。

步骤要点

  1. 在两侧固定相同的运行时与工具版本。
  2. 在两侧用相同容器镜像执行测试。
  3. 为测试提供相同的环境变量。
  4. 用故意破坏的测试验证两侧一致。
# run tests in the same image the CI uses
docker run --rm -v "$PWD":/app -w /app node:22-alpine npm test

验证

按顺序执行上述步骤后,逐项确认每个步骤的预期状态均已满足;只有全部预期状态成立,才认为本流程完成。若某一步未达到预期状态,应先按排错提示排查,不要跳过继续,以免掩盖问题。

排错提示

  • 版本漂移会导致本地单独通过。
  • 密钥环境变量差异会引发失败。
  • 不可复现环境会浪费时间排错。

适用边界

  • 容器一致性最强。
  • 只对齐与测试相关的变量。