自动化测试
此项目包含两种测试,分别为 Unit test 和 Validation test。
Validation test
Validation Test 包含以下内容:
- 测试 Hangar 输出 Version、Help 帮助信息等基本的测试。
- 最先执行 mirror, mirror-validate 命令的测试,将一些容器镜像 Mirror 至新部署的 Harbor Registry 服务器,并验证 Mirror 过的镜像是否正确。
先将容器镜像从第三方 Public Registry Mirror 至 Harbor Private Registry,之后的 Save/Load 等测试将依靠 Harbor Private Registry 进行,以避免触发 DockerHub 的 Rate Limit 限制。
- 之后执行 save, load, load-validate, sync, compress, decompress 等命令的测试。
测试环境准备
- 搭建 Harbor V2 Registry 服务器,测试时会将容器镜像 Mirror 至 Harbor 仓库中,避免触发 Docker Hub Rate Limit 限制。
- 设置环境变量,在测试时登录至 Docker Hub 和 Harbor V2。
export SOURCE_REGISTRY="" # 源 Registry 设置为空字符串
export SOURCE_USERNAME="" # DockerHub 用户名 (可选)
export SOURCE_PASSWORD="" # DockerHub 密码 (可选)
export DEST_REGISTRY="" # harbor registry url
export DEST_USERNAME="" # harbor 用户名
export DEST_PASSWORD="" # harbor 密码若搭建的 Harbor V2 仓库为 HTTP 或使用了自签名 SSL 证书,请设置环境变量
export TEST_SKIP_TLS="true"
以启用 Hangar 的--tls-verify=false
参数。 - 在本工程的根目录中执行
make build
编译生成可执行文件,供测试使用。
在容器中运行测试代码
可使用以下命令,在容器中一键运行所有子命令的 Validation test:
$ make test_all
除此之外,可执行 make test_[COMMAND_NAME]
,在容器中运行不同子命令的 Validation test:
此时需要先执行
make test_mirror
,之后再执行其他命令的测试。
# 测试 mirror | mirror-validate 子命令
make test_mirror
# 测试 save 子命令
make test_save
# 测试 load | load-validate 子命令
make test_load
# 测试 sync | compress | decompress 子命令
make test_sync
# 以此类推,运行其他命令的测试指令为:
make test_[COMMAND_NAME]
Unit test
单元测试用来确保程序代码中函数的执行和输出是否符合预期。
在容器中运行程序代码的单元测试:
$ make test