PHP Conference Nagoya 2025

Тестирование

Набор тестов для модуля OCI8 располагается в директории ext/oci8/tests. После запуска тестов модуля OCI8 этот каталог также будет содержать журналы сбоев.

Перед запуском тестов PHP необходимо отредактировать файл details.inc и задать значения переменным $user, $password и строке соединения $dbase. Набор тестов OCI8 был разработан с учётной записью SYSTEM. Некоторые тесты не будут выполняться, если у тестирующего пользователя нет аналогичных разрешений.

Если тестируется пул резидентных подключений к базе данных Oracle (Database Resident Connection Pooling), необходимо установить для переменной $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
Обратите внимание, в ряде оболочек эти переменные транслируются в PHP-процесс неправильно, и через этот метод тесты не смогут подключиться.

Затем необходимо установить необходимое окружение для базы данных Oracle. Если PHP запускается на тех же машинах, что и база данных Orcale, можно запустить:

    $ . /usr/local/bin/oraenv

В Oracle 11gR2 XE выполняют:

    $ . /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh

Отдельные оболочки требуют, чтобы в файле 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 увеличивают следующими действиями:

Подключиться к базе данных в роли суперпользователя:

    $ su - oracle

Установить необходимое окружение Oracle через сценарии oracle_env.sh или oraenv, как описали предыдущие параграфы.

Запустить утилиту командной строки SQL*Plus и увеличить значение параметра PROCESSES

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

Перезапустить базу данных:

    SQL> startup force

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top