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