各种测试,尤其是src/bin下的客户端程序测试,会使用 Perl TAP 工具,并通过 Perl 测试程序prove运行。 你可以通过设置make变量PROVE_FLAGS 来向prove传递命令行选项,例如:
make -C src/bin check PROVE_FLAGS='--timer'
更多信息请参见prove的手册页。
make变量PROVE_TESTS可用于定义一个 以空白分隔的路径列表,这些路径相对于Makefile; 该文件调用prove来运行指定的测试子集,而不是默认的 t/*.pl。例如:
make check PROVE_TESTS='t/001_test1.pl t/003_test3.pl'
TAP 测试需要 Perl 模块IPC::Run。该模块可从 CPAN 或操作系统软件包获得。此外,这些测试还要求 PostgreSQL在配置时使用 --enable-tap-tests选项。
一般来说,如果执行make installcheck,TAP 测试会测试 先前安装树中的可执行文件;如果执行make check, 则会根据当前源码构建一个新的本地安装树。无论哪种情况,它们都会初始化 一个本地实例(数据目录),并在其中临时运行服务器。其中一些测试会运行 多个服务器。因此,这些测试可能相当耗费资源。
需要注意的是,即使执行make installcheck,TAP 测试也会 启动测试服务器;这不同于传统的非 TAP 测试基础设施,后者在该情况下期望 使用一个已经运行的测试服务器。PostgreSQL 的某些子目录同时包含传统风格 和 TAP 风格的测试,这意味着make installcheck会产生 来自临时服务器和已在运行的测试服务器的混合结果。
如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。