测试

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
注意,在某些 shell 中,这些变量无法正确传播到 PHP 进程,如果使用此方法,测试将无法连接。

接下来,设置 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
或仅运行 OCI8 测试,使用
    $ 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.shoraenv 设置必要的 Oracle 环境,如上所述。

启动 SQL*Plus 命令行工具并增加 PROCESSES

    $ sqlplus / as sysdba
    SQL> alter system set processes=100 scope=spfile

重新启动数据库

    SQL> startup force

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top