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 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
$ 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.sh 或 oraenv 設定必要的 Oracle 環境,如上所述。
啟動 SQL*Plus 命令列工具並增加 PROCESSES
$ sqlplus / as sysdba SQL> alter system set processes=100 scope=spfile
重新啟動資料庫
SQL> startup force