Процедура установки и настройки для юнит-тестов 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.