0Pricing
Helm Academy · 课时

编写 helm test 测试用例

用于验证运行中 Release 的测试 Pod

编写 helm test 测试用例 是 CoddyKit 上的免费 Helm Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Helm Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Helm Academy 课程共包含 4 节课。

测试正在运行的发布

Lint 和 template 会检查文件,但 helm test 会检查集群中已经运行的发布。它可以证明应用确实能够正常工作。✅

测试就是 Pod

Helm 测试是 Chart 的模板目录中定义的一个 Pod。Helm 会按需运行它,并根据其退出代码判断是否成功。

测试注解

添加 helm.sh/hook: test 注解,即可将 Pod 标记为测试。这样 Helm 会在安装时跳过它,只在收到请求时运行。

annotations:
  "helm.sh/hook": test

一个简单的连接测试

常见的测试会运行一个使用 wget 的小型镜像,例如 busybox,以确认您的服务能在其端口上响应。

command: ['wget']
args: ['myapp:80']

由退出代码决定

如果测试 Pod 以 0 退出,测试就会通过。任何非零退出代码都会将测试标记为失败,这与 Shell 命令完全相同。

运行测试

安装后,请使用发布名称运行 helm test。Helm 会创建测试 Pod、等待它们完成,并报告每个结果。

helm test myrelease

查看日志

添加 --logs 可以实时输出每个测试 Pod 的结果,这样测试失败时您能知道出了什么问题,而不只是看到失败状态。

helm test myrelease --logs

按需测试

测试不会在安装期间自动运行。您需要自行触发它们,这样可以保持安装速度,并让测试保持明确。

清理测试 Pod

请添加 hook-delete-policy,以便删除已完成的测试 Pod,避免它们在多次运行之间占用命名空间。

"helm.sh/hook-delete-policy": hook-succeeded

测试存放的位置

按照约定,测试 Pod 位于 templates/tests/ 中,这样可以将它们整理好,并与实际工作负载清单分开。

CI 的一部分

在流水线中,您可以先安装 Chart,然后运行 helm test。测试失败会使任务失败,从而在用户发现部署问题之前将其捕获。

快速检查

Helm 如何判断测试 Pod 是否通过?

回顾

您已经了解到,helm test 会针对正在运行的发布执行带注解的测试 Pod,根据退出代码判断结果,并且可以很好地融入 CI。🎉

常见问题解答

「编写 helm test 测试用例」课时是免费的吗?

是的 — 「编写 helm test 测试用例」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Helm Academy 课程的其余内容,请升级到 CoddyKit PRO。 Helm Academy 课程共包含 4 节课。

「编写 helm test 测试用例」这节课中我会学到什么?

用于验证运行中 Release 的测试 Pod 你通过在浏览器中直接运行的动手代码来练习 Helm Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Helm Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Helm Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「编写 helm test 测试用例」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Helm Academy 课中编写并运行代码吗?

能。每节 Helm Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 使用 helm lint 执行静态检查
  2. 使用 helm template 验证输出
  3. 编写 helm test 测试用例
  4. 使用 values.schema.json 进行架构验证
← 返回 Helm Academy