↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16
测试与开发版本: 19 / devel
不受支持的版本: 7.3 / 7.2
历史版本PostgreSQL 7.3 已于 2007 年 11 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本。

13.2. 运行测试 #

回归测试既可以针对一个已安装并正在运行的服务器运行,也可以使用构建树中的一个临时安装来运行。此外,还有“并行”和“顺序”两种运行测试的模式。顺序方法依次运行每个测试脚本,而并行方法会启动多个服务器进程来并行运行成组的测试。并行测试可以让人确信进程间通信和锁机制工作正常。由于历史原因,顺序测试通常针对现有安装运行,而并行方法针对临时安装运行,但这并没有技术上的原因。

要在构建之后、安装之前运行回归测试,在顶层目录中键入

$ gmake check

(或者你可以切换到 src/test/regress 并在那里运行该命令。)这会先构建若干辅助文件,例如平台相关的“expected”文件和一些示例用户定义触发器函数,然后运行测试驱动脚本。最后你应当看到类似

======================
 All 77 tests passed.
======================

的输出,或者一条关于哪些测试失败的说明。更多信息见下文第 13.3 节。

注意

由于这种测试方法运行的是一个临时服务器,当你以 root 用户操作时它将无法工作(服务器不会以 root 启动)。如果你已经以 root 完成了构建,不必从头再来。只需让回归测试目录可被其他用户写入,以该用户登录,然后重新启动测试。例如

root# chmod -R a+w src/test/regress
root# chmod -R a+w contrib/spi
root# su - joeuser
joeuser$ cd top-level build directory
joeuser$ gmake check

(这里唯一可能的“安全风险”是其他用户可能背着你篡改回归测试结果。管理用户权限时请运用常识。)

或者,在安装之后运行测试。

提示

并行回归测试会以你的用户 ID 启动相当多的进程。目前最大并发度是二十个并行测试脚本,这意味着六十个进程:每个测试脚本有一个后端、一个 psql,并且通常还有一个 psql 的 shell 父进程。因此,如果你的系统对每个用户的进程数有限制,请确保该限制至少在七十五左右,否则并行测试中可能出现看似随机的失败。如果你无法提高该限制,可以编辑文件 src/test/regress/parallel_schedule 把较大的并发测试集拆分成更多可管理的组。

提示

在某些系统上,默认的 Bourne 兼容 shell(/bin/sh)在要并行管理太多子进程时会出问题。这可能导致并行测试运行锁死或失败。在这种情况下,在命令行上指定一个不同的 Bourne 兼容 shell,例如:

$ gmake SHELL=/bin/ksh check

如果没有可用的无缺陷 shell,你也可以像上面建议的那样修改并行测试调度。

要在安装之后运行测试(见第 1 章),初始化一个数据区域并启动服务器,如第 3 章所述,然后键入

$ gmake installcheck

除非 PGHOST 和 PGPORT 环境变量另有指示,测试将期望在本地主机和默认端口号上连接服务器。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。