测试

如何运行测试

先决条件

  • Go 分发版
  • 如果您使用的是 Linux,则需要安装 libvirt-dev,因为单元测试需要 kvm2 驱动程序
# For Debian based
sudo apt-get install libvirt-dev

# For Centos
yum install libvirt-devel

# For Fedora
dnf install libvirt-devel

单元测试

代码合并之前,单元测试会在 Travis 上运行。要在开发周期中运行,

make test

集成测试

基础知识

从 minikube 根目录构建二进制文件并运行测试

make integration

您可能会发现设置各种选项以仅针对非默认驱动程序测试特定测试非常有用。例如

make integration TEST_ARGS="-minikube-start-args='--driver=vfkit --network=vmnet-shared' -test.run TestStartStop"

重要提示

  • 要将多个标志传递给 -minikube-start-args,您必须引用该值
  • 标志值不能包含空格,因为字符串按空格分割

快速迭代单个测试

在活动集群上运行单个测试

make integration TEST_ARGS="-test.run TestFunctional/parallel/MountCmd --profile=minikube --cleanup=false"

警告:为了使其重复运行,测试必须编写成在运行后自行清理。

--cleanup=false 测试参数确保在测试运行后不会删除集群。

有关详细信息,请参阅 main_test.go

禁用并行

make integration TEST_ARGS="-test.parallel=1"

测试理念

  • 测试应该足够简单,可以通过检查来确定其正确性
  • 读者只需阅读测试主体即可理解测试
  • 自上而下的可读性比代码去重更重要

通常,读者会以极大的怀疑态度阅读测试,因为很可能只有当出现问题时才会阅读它们。

一致性测试

这些是针对任意集群运行并演练各种 Kubernetes 功能的 Kubernetes 测试。您可以通过执行以下步骤来针对 minikube 运行这些测试

安装 docker 安装 kubectl 克隆 minikube 仓库

编译最新的 minikube 二进制文件

% cd <minikube dir>
% make

触发测试并获取结果

% cd <minikube dir>
./hack/conformance_tests.sh out/minikube --driver=docker --container-runtime=docker --kubernetes-version=stable

此脚本将针对具有两个节点和所提供参数的 minikube 集群运行最新的 sonobuoy。


上次修改时间:2025 年 9 月 27 日:docs: Improve testing docs (853e22b0f)