單元測試和集成測試
單元測試
單元測試僅依賴於源代碼,是測試代碼邏輯是否符合預期的最簡單方法。
運行所有的單元測試
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
-ctlFedaration e2e 測試
可以用 cluster/log-dump.sh <directory> 方便的下載相關日誌,幫助排查測試中碰到的問題。
Node e2e 測試
Node e2e 僅測試 Kubelet 的相關功能,可以在本地或者集群中測試
補充說明
藉助 kubectl 的模版可以方便獲取想要的數據,比如查詢某個 container 的鏡像的方法爲
參考文檔
Last updated