单元测试和集成测试

单元测试

单元测试仅依赖于源代码,是测试代码逻辑是否符合预期的最简单方法。

运行所有的单元测试

make test

仅测试指定的 package

# 单个 package
make test WHAT=./pkg/api
# 多个 packages
make test WHAT=./pkg/{api,kubelet}

或者,也可以直接用 go test

go test -v k8s.io/kubernetes/pkg/kubelet

仅测试指定 package 的某个测试 case

或者直接用 go test

并行测试

并行测试是 root out flakes 的一种有效方法:

生成测试报告

Benchmark 测试

集成测试

Kubernetes 集成测试需要安装 etcd(只要按照即可,不需要启动),比如

集成测试会在需要的时候自动启动 etcd 和 kubernetes 服务,并运行 test/integration 里面的测试。

运行所有集成测试

指定集成测试用例

End to end (e2e) 测试

End to end (e2e) 测试模拟用户行为操作 Kubernetes,用来保证 Kubernetes 服务或集群的行为完全符合设计预期。

在开启 e2e 测试之前,需要先编译测试文件,并设置 KUBERNETES_PROVIDER(默认为 gce):

启动 cluster,测试,最后停止 cluster

仅测试指定的用例

跳过测试用例

并行测试

清理测试资源

有用的 -ctl

Fedaration e2e 测试

可以用 cluster/log-dump.sh <directory> 方便的下载相关日志,帮助排查测试中碰到的问题。

Node e2e 测试

Node e2e 仅测试 Kubelet 的相关功能,可以在本地或者集群中测试

补充说明

借助 kubectl 的模版可以方便获取想要的数据,比如查询某个 container 的镜像的方法为

参考文档

最后更新于