测试
单元测试
单元测试使用 Go 编写,可以用以下命令执行:
go test -v ./...
单元测试不执行实际的虚拟机。
集成测试
集成测试涉及虚拟机的实际执行。
集成测试使用 bash 编写,部分使用 Perl。
使用 hack/test-templates.sh
执行集成测试,配合虚拟机模板文件,例如:
./hack/test-templates.sh ./templates/default.yaml
./hack/test-templates.sh ./templates/fedora.yaml
./hack/test-templates.sh ./hack/test-templates/test-misc.yaml
CI
.github/workflows/test.yml
在 GitHub Actions 上使用 “Tier 1” 模板执行单元测试和集成测试。
大部分集成测试在 Linux 运行器上执行,因为 macOS 运行器较慢且不稳定。
关于 macOS 特定功能(例如 vz 和 vmnet)的测试仍在 macOS 运行器上执行。
目前使用 Intel 版本的 macOS,因为 GitHub Actions 上的 ARM 版本 macOS 仍不支持嵌套虚拟化。