很多测试,特别是src/bin
下面的客户端程序测试使用 Perl 的
TAP 工具并且用Perl测试程序prove
运行。你可以通过
设置make
变量PROVE_FLAGS
向prove
传递命令行选项,例如:
make -C src/bin check PROVE_FLAGS='--timer'
详见prove
的手册页。
make
变量PROVE_TESTS
可被用来定义一个空格分隔的列表,其中是调用prove
来运行的指定测试子集的路径,这些测试子集将取代默认的t/*.pl
,并且这些路径是相对于Makefile
的。例如:
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
,将从当前源构建新的本地安装树。
在这两种情况下,他们将初始化本地实例(数据目录),并在其中暂时运行服务器。 其中一些测试运行多个服务器。 因此,这些测试可能相当耗费资源。
重要的是要认识到TAP测试将启动测试服务器,即使你说make installcheck
;这与传统的非TAP 测试基础架构不同,在这种情况下它期望使用已经运行的测试服务器。
某些 PostgreSQL 子目录包含传统样式和 TAP 样式测试,这意味着make installcheck
将产生来自临时服务器和已运行测试服务器的混合结果。