Skaffold/K8s 单元测试

Skaffold/K8s Unit testing

我正在尝试在部署之前对我的微服务进行单元测试,但是在 Skaffold 管道中,图像是在部署之前进行测试的。这里的问题是我图像中的代码依赖于从 k8s 配置映射和秘密安装的配置和凭据,因此如果单元测试在部署之前 运行,测试将始终失败。

如何 运行 使用 skaffold 对微服务进行单元测试?微服务的单元测试通常如何 运行?翻遍网络,似乎没有人有直接的答案。

任何指导将不胜感激。

我已经使用或看到人们使用了几种策略来对部署进行端到端测试:

  • 集群内测试,部署一个或多个执行测试的作业,然后使用作业状态来传达测试 success/failure。我们使用这种方法来测试 skaffold debug 使用的 container-debug-support 图像。我们运行一个little script that builds and deploys a set of images in a integration profile that includes a set of test Jobs (example)。然后脚本等待这些作业完成 kubectl wait
  • 在集群外部,您可以在其中访问暴露的服务:这可以使用 after-deploy hooks 来完成。您可以使用它来进行一些冒烟测试或负载测试。如果您打算保留该应用 运行ning,则此方法有效;我不确定在挂钩内拆除应用程序是个好主意。

skaffold runskaffold delete 是用于暂存和拆除应用程序的有用原语。