PostgreSQL 18 中文参考文档(未翻译部分保留英文)🌐 切换到英文原版 →

31.1. 运行测试 #

31.1.1. 针对临时安装实例运行测试
31.1.2. 针对既有实例运行测试
31.1.3. 附加测试套件
31.1.4. 指定区域设置运行测试
31.1.5. 使用自定义参数配置运行测试
31.1.6. 运行额外扩展测试

回归测试既可以在全新编译完成但尚未安装的源码树中针对临时拉起的隔离实例运行,也可以针对操作系统中已经安装并正在运行的既有数据库实例发起测试。此外,测试框架支持并行(Parallel)与串行(Sequential)运行模式。并行模式通过多进程并发执行各测试脚本,能够进一步检验进程间通信、物理锁表与共享内存并发调度的正确性。

31.1.1. 针对临时安装实例运行测试 #

在源码编译完成之后、执行安装之前,直接在源码根目录下执行:

make check

若全部测试用例执行通过,终端末尾将输出:


# All 213 tests passed.

若有测试失败,会输出具体的报错脚本清单。请在判定其为严重缺陷之前阅读 Section 31.2。

由于该测试方式会自动拉起临时数据库服务器,因此如果你是以 root 身份执行编译的,该命令将无法运行(因为出于安全机制,PostgreSQL 严禁以 root 权限启动服务进程)。

并行回归测试会以当前系统用户身份拉起大量并发进程(最大并发 20 个测试脚本,对应约 40 个并发进程)。请确保当前操作系统的单个用户最大进程数限制(ulimit -u)至少在 50 以上。如需限制并行度,可以通过传递参数调低并发量:

make MAX_CONNECTIONS=10 check

31.1.2. 针对既有实例运行测试 #

在已安装并正常启动运行的数据库实例上(参见 Chapter 18),执行:

make installcheck

或并行模式:

make installcheck-parallel

测试程序默认通过本机 localhost 和默认端口连接实例。测试会自动在名为 regression 的数据库中运行(若已存在该同名库将被强制销毁重建)。

31.1.3. 附加测试套件 #

除核心回归测试外,还可以运行扩展模块与 contrib 目录的回归测试(如 make check-world 或 meson test)。

31.1.4. 指定区域设置运行测试 #

可以通过设置环境变量 LANG 或 LC_ALL,在非默认语言区域环境下验证回归测试套件。

31.1.5. 使用自定义参数配置运行测试 #

可以通过向测试运行器传递自定义参数文件(如附加特定优化器或内存参数)来测试非常规运行配置下的内核表现。

31.1.6. 运行额外扩展测试 #

系统支持运行需要消耗大量时间或外部依赖的额外测试用例。