單元測試和集成測試

單元測試

單元測試僅依賴於源代碼,是測試代碼邏輯是否符合預期的最簡單方法。

運行所有的單元測試

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 的鏡像的方法爲

參考文檔

Last updated