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

Набор тестов для модуля 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

Добавить

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

up
0
webmaster at event-horizon dot lt
17 days ago
Unit testing is, classes and objects including extensions for OOP-developers. And functions only(!) for procedural games. Meaning, if you want to make procedural games you don't use classes and objects. This is called unit testing.
Functions are only allowed in procedural programming.
To Top