OCI8 测试套件位于 ext/oci8/tests 中。运行 OCI8 测试后,该目录还将包含任何失败的日志。
在运行 PHP 的测试之前,请编辑 details.inc 并设置 $user、$password 和 $dbase 连接字符串。OCI8 测试套件已使用 SYSTEM
帐户开发。如果测试用户没有等效的权限,某些测试将失败。
如果正在测试 Oracle 数据库驻留连接池,请将 $test_drcp 设置为 true
并确保连接字符串使用适当的 DRCP 池化服务器。
除了编辑 details.inc 之外,还可以设置环境变量,例如
$ export PHP_OCI8_TEST_USER=system $ export PHP_OCI8_TEST_PASS=oracle $ export PHP_OCI8_TEST_DB=localhost/XE $ export PHP_OCI8_TEST_DRCP=FALSE
接下来,设置 Oracle 数据库所需的任何环境。如果您在与 Oracle 数据库相同的机器上运行 PHP,则可以运行
$ . /usr/local/bin/oraenv
对于 Oracle 11*g*R2 XE,请执行
$ . /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh
某些 shell 要求 php.ini 在 variables_order 参数中包含 E
,例如
variables_order = "EGPCS"
运行所有 PHP 测试,使用
$ cd your_php_src_directory $ make test
$ cd your_php_src_directory $ make test TESTS=ext/oci8
测试完成后,请查看任何测试失败。在速度较慢的系统上,某些测试可能需要的时间比 run-tests.php 中的默认测试超时时间更长。要更正此问题,请将环境变量 TEST_TIMEOUT
设置为更大的秒数。
在配置为轻负载的本地数据库(例如 Oracle 11*g*R2 XE)的快速机器上,某些测试可能会因 ORA-12516 或 ORA-12520 错误而失败。为了防止这种情况,请使用以下步骤增加数据库 PROCESSES
参数
以 Oracle 软件所有者的身份连接
$ su - oracle
使用 oracle_env.sh 或 oraenv 设置必要的 Oracle 环境,如上所述。
启动 SQL*Plus 命令行工具并增加 PROCESSES
$ sqlplus / as sysdba SQL> alter system set processes=100 scope=spfile
重新启动数据库
SQL> startup force