Процедура установки и настройки для юнит-тестов PHP и WordPress как-то быстро забылись. Поэтому сохраним очередность шагов по локальной установке.
Сначала перейдем в каталог нашего плагина:
> cd ./my-plugin
Запустим установку с помощью composer:
> composer require --dev phpunit/phpunit
Добавляем секцию scripts в файл composer.json
:
{ "scripts": { "test": "phpunit" }, "require-dev": { "phpunit/phpunit": "^9.5" } }
Создадим папку tests
, где создадим певый файл с тестом для нашего класса Temlater — test-temlater.php
:
<?php namespace MyPack; use PHPUnit\Framework\TestCase; require_once './includes/class-templater.php'; class TemplaterTest extends TestCase { public function test_true_is_true() { $this->assertEquals( true, true ); } public function test_false_is_not_true() { $this->assertFalse( false, true ); } }
Чтобы всё заработало создадим файл phpunit.xml
:
<?xml version="1.0"?> <phpunit bootstrap="vendor/autoload.php" backupGlobals="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" > <testsuites> <testsuite name="default"> <directory prefix="test-" suffix=".php">./tests/</directory> </testsuite> </testsuites> </phpunit>
и выполним команду начать тестировать:
> composer test
получим:
> phpunit PHPUnit 9.5.21 .................. 2 / 2 (100%) Time: 00:00.081, Memory: 4.00 MB OK (2 tests, 2 assertions)
всё работает, но для очистки совести убедимся, что тесты и проваливаются, добавив ещё один, который точно должен провалиться:
public function test_to_fail() { $this->assertEquals( false, true ); }
следующий шаг — настройка юнит-тестов для WordPress.