VamShop 3 — Автоматизированное тестирование PHPUnit
VamShop 3 построен на базе CakePHP 3.x, соответственно, есть встроенная поддержка автоматизированного тестирования PHPUnit.
Всё сделано в соответствии с официальной документацией, доступной по адресу — https://book.cakephp.org/3.0/en/development/testing.html
По умолчанию в VamShop 3 уже написаны тесты для некоторых Core модулей.
Данная статья будет пополняться постепенно.
В данной заметке расскажу как запустить автоматизированное тестирование.
Будем считать, что у Вас установлен VamShop 3.
Тестирование надо проводить при включённом режиме отладки, т.е. в файле config/app.php поменяйте:
filter_var(env(’DEBUG’, false)
на:
filter_var(env(’DEBUG’, true)
Теперь нужно установить пакет phpunit.
В корневой папке магазина выполните команду:
composer require phpunit/phpunit:”^6.0″
PHPUnit не должен быть самой свежей 7 версии, PHPUnit 7 версии не поддерживается в CakePHP 3.x на данный момент.
Затем надо настроить базу данных, которая будет использоваться для тестирования.
В /config/app.php есть такой блок:
/**
* The test connection is used during the test suite.
*/
‘test’ => [
'className' => 'CakeDatabaseConnection',
'driver' => 'CakeDatabaseDriverMysql',
'persistent' => false,
'host' => 'localhost',
//'port' => 'non_standard_port_number',
'username' => 'my_app',
'password' => 'secret',
'database' => 'test_myapp',
'encoding' => 'utf8mb4',
'timezone' => 'UTC',
'cacheMetadata' => true,
'quoteIdentifiers' => false,
'log' => false,
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
‘url’ => env(’DATABASE_TEST_URL’, null),
],
Это как раз база для тестирования.
Если у Вас не рабочая копия сайта, то можно просто прописать сюда основной доступ.
В этом же файле чуть выше найдите основную используемую базу данных, default подключение:
‘default’ => [
'className' => 'CakeDatabaseConnection',
'driver' => 'CakeDatabaseDriverMysql',
'persistent' => false,
'host' => 'localhost',
/**
* CakePHP will use the default DB port based on the driver selected
* MySQL on MAMP uses port 8889, MAMP users will want to uncomment
* the following line and set the port accordingly
*/
//'port' => 'non_standard_port_number',
'username' => 'root',
'password' => 'XXXXXX',
'database' => 'vamshop3',
'encoding' => 'utf8mb4',
'timezone' => 'UTC',
'flags' => [],
‘cacheMetadata’ => true,
‘log’ => false,
И просто возьмите отсюда данные логин, пароль, название базы дадыннх и скопируйте их в тестовую базу.
Пропишите:
/**
* The test connection is used during the test suite.
*/
‘test’ => [
'className' => 'CakeDatabaseConnection',
'driver' => 'CakeDatabaseDriverMysql',
'persistent' => false,
'host' => 'localhost',
//'port' => 'non_standard_port_number',
'username' => 'root',
'password' => 'XXXXXX',
'database' => 'vamshop3',
'encoding' => 'utf8mb4',
'timezone' => 'UTC',
'cacheMetadata' => true,
'quoteIdentifiers' => false,
'log' => false,
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
‘url’ => env(’DATABASE_TEST_URL’, null),
],
Для тестов Вы будете использовать свою же базу данных по умолчанию.
Но на всякий случай конечно лучше проводить тесты не на основной базе, а на клоне.
Сделайте резервную копию Вашей базы данных, например vamshop3-test
С помощью phpMyAdmin или через консоль загрузите все данные в базу vamshop3-test
У Вас будет две одинаковые базы данных: основная vamshop3 и база для тестов: vamshop3-test
Related posts:
- VamShop 3 — Travis CI Данная заметка — продолжение прошлой статьи про PHPunit — ...
- Новые статьи на форуме — Vamshop 3 Но форуме тех. поддержки пользователей https://forum.vamshop.ru Будут постепенно выкладываться...
- Новая версия VamShop 2.51 Выпущена новая версия VamShop 2.51 Что изменилось: 1. Добавлен...