PHP Conference Japan 2024

測試

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 11gR2 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 11gR2 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