Download the PHP package proklung/bitrix-phpunit-testing-tools without Composer
On this page you can find all versions of the php package proklung/bitrix-phpunit-testing-tools. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download proklung/bitrix-phpunit-testing-tools
More information about proklung/bitrix-phpunit-testing-tools
Files in proklung/bitrix-phpunit-testing-tools
Package bitrix-phpunit-testing-tools
Short Description Bitrix PHPUNIT testing tools.
License MIT
Informations about the package bitrix-phpunit-testing-tools
Кастомные инструменты для PHPUnit тестов под Битрикс
INTERNAL
Установка
composer require --dev proklung/bitrix-phpunit-testing-tools
В пакете, использующем этот пакет как зависимость, в composer.json должна быть секция (нужно, чтобы модуль миграций установился куда надо):
Нюансы
Базовый класс для тестов - BitrixableTestCase
. Запускает, приложенный к пакету Битрикс и позволяет использовать в тестах
его API.
Параметры доступа к БД определяются в методе setupDatabaseData
базового класса BitrixableTestCase
.
Если база на момент запуска не существует, то будет создана.
По умолчанию:
Можно переопределить в каждом конкретном тесте.
Управление
Трэйт ResetDatabaseTrait
Указание сбрасывать базу перед каждым тестом и загружать по новой.
Трэйт CustomDumpTrait
Сбрасывать базу и загружать кастомный дамп базы.
Путь к дампу указывается в методе getDumpPath
теста:
Действует только в сочетании с ResetDatabaseTrait
.
При использовании дампов с боя обычно возникают проблемы с просроченностью лицензии. В таком случае приходится вручную
заменить файл include.php
в vendor/sheerockoff/bitrix-ci/files/bitrix/modules/main
.
Трэйт SprintMigrationsTrait
Использование миграций модуля sprint.option.
Путь к директории с миграциями указывается в методе getPathSprintMigrations
теста:
Нюансы
В силу особенностей использования сборки Bitrix CI приходится устанавливать модуль хитро - прямо внутрь пакета сборки
(в папку vendor/sheerockoff/bitrix-ci/files/bitrix/modules/sprint.option
) на стадии работы композера. Побочный эффект - если обновится сама сборка,
то модуль миграций улетит в трубу.
Пока так.
Периодически база тухнет по сроку годности ("... пробной версии истек ..."). Чтобы пофиксить нужно
запустить любой тест с трэйтом ResetDatabaseTrait
, пересоздающим базу заново.
Трэйт UseMigrationsTrait
Указание запускать миграции перед каждым тестом.
Под капотом урезанная версия пакета, так что подходят миграции и от него.
За одним исключением - миграция наследуется не от класса Arrilot\BitrixMigrations\BaseMigrations\BitrixMigration
, а от
Arrilot\BitrixMigrationsFork\BaseMigrations\BitrixMigration
.
Путь к директории с миграциями указывается в методе getMigrationsDir
теста:
К трэйту приложен метод-хелпер makeMigration
для создания миграций по шаблону.
Имеющиеся шаблоны:
Название | Описание | Алиасы |
---|---|---|
`default` | Чистый шаблон по умолчанию | |
`add_iblock_type` | Добавление типа инфоблока | |
`add_iblock` | Добавление инфоблока | |
`add_iblock_element_property` | Добавление свойства в инфоблок | `add_iblock_prop`, `add_iblock_element_prop`, `add_element_prop`, `add_element_property` |
`add_uf` | Добавление UF свойства | |
`query` | Произвольный запрос в БД через АПИ d7 | |
`add_table` | Создание таблицы через АПИ d7 | `create_table` |
`delete_table` | Удаление таблицы через АПИ d7 | `drop_table` |
Дополнительный трэйт - CSVTrait
для импорта CSV файлов (формата экспорта Битрикса) в миграциях.
После его задействования тест должен реализовать методы:
-
- код инфоблока;
-
- определение подразделов. Массив с номером столбцов в CSV файле (IC_GROUP0 итд);
-
- определение свойств. Массив вида [код свойства => номер столбца в CSV];
-
- путь к CSV файлу;
Важно! - в CSV файле не должно быть первой строчки с названиями столбцов.
Инвокеры
Из пакета. Переработаны под частные нужды.
Нюансы
Для помощи в тестировании кода компонента используется класс
Методы класса:
-
- инициализация объекта запуска компонента;
-
- инициализация;
-
- устанавливает параметры для запуска тестируемого компонента;
-
- устанавливает arParams для запуска тестируемого компонента;
-
- устанавливает название компонента("test.component");
-
- устанавливает шаблон компонента("test.component");
-
- запускает компонент на выполнение (шаблон при этом не используется);
-
- возвращает параметр $arResult по ключу $name;
-
- возвращает полный $arResult работы компонента;
-
- возвращает кэшированную часть (через $this->__component) $arResult после работы компонента;
-
- возвращает результат работы компонента, когда в коде компонента используется оператор возврата .
Пример:
Тестирование работы адаптера шаблона (result_modifier)
Тестировать result_modifier шаблона компонента можно объектом класса .
Методы:
-
- инициализация объекта, параметры совпадают с параметрами метода ;
-
- искусственная установка результата для передачи адаптеру;
-
- устанавливает arParams для запуска тестируемого компонента;
-
- запуск адаптера на выполнение;
-
- возвращает полный работы адаптера;
-
- возвращает кэшированную часть (через $this->__component) $arResult после работы компонента;
-
- значение результата работы адаптера по ключу ;
Пример:
Тестирование обработки события
Класс облегчает тестирование обработки событий.
Методы:
-
- инициализация объекта запуска события, $module - имя модуля выброса события, $eventName - название события;
-
- установка параметров события в виде массива, будут переданы в параметры события;
-
- выброс события;
-
- получение количества обработчиков события;
-
- получение объекта события;
Пример:
Прочее
- Метод
goTo
классаBitrixableTestCase
. Эмулирует нахождение на каком-либо URL. Выставляет все, что связано с URL в старом ядре и D7.
Также подменяет автоматом все, что возможно из супер-глобалов типа $_SERVER, $_POST и т.д.
All versions of bitrix-phpunit-testing-tools with dependencies
sheerockoff/bitrix-ci Version ^21.400
andreyryabin/sprint.migration Version ^4
ext-mysqli Version *