PHPUnit

phpstorm phpunit Запуск конкретного метода из кода -- переключается в удаленный режим

Наблюдаю проблему, что при наличии настроект для удаленной отладки и деплоя на внешний сервер разработка phpstorm почему-то перключается на "Remote PhpUnit", вмето того чтобы запускаться локально.

Пробелма наблюдается при запуске "прямо из кода" - со строки начала тестового метода

Решение

Оказалось, что ломал работу недавно установленный плагин

xdebug netbeans Отладка в терминале (консоли), отладка тестов

Предположим, что вы уже умеете настраивать запуск xdebug через локальный сервер.

В нашем случае хотелось посмотреть поотлаживать код, который запускался в режиме командной строки (автотесты с помощью codeception),

моя исходная команда в папке проекта была (в терминале):

symfony phpunit Fatal error: Declaration of ... must be compatible with ...

PHP Fatal error: Declaration of Symfony\Bridge\PhpUnit\Legacy\SymfonyTestsListenerForV7::addError(PHPUnit\Framework\Test $test, Throwable $t, float $time): void must be compatible with PHPUnit\Framework\TestListener::addError(PHPUnit\Framework\Test $test, Exception $e, $time) in /home/julia/Projects/webbankir/vendor/symfony/phpunit-bridge/Legacy/SymfonyTestsListenerForV7.php on line 27

[!] PHPUnit по-русски. Справочник

Установка

Установка через comoser, добавьте в composer.json:

    "require-dev": {
        "phpunit/phpunit": "~7.0"
    },

-- версия в вашем случае может быть более новой.

[!] Тестирование кода в PHP. Справочник

Наиболее известные средства тестирования:

  • PhpUnit -- знаменитая библиотека для тестирования кода.
  • Codeception -- "фреймворк" для тестирования, содержит кучу возможностей, зависит с том числе и от phpunit

phpunit Ошибка Method name matcher is not defined, cannot define parameter matcher without one

При запуске Unit теста возникает ошибка:

Method name matcher is not defined, cannot define parameter matcher without one

Решение

Проблема оказалась в том, что был нарушен порядок вызова методов при работе с моком. Метод with() должен идти ПОСЛЕ метода method(), т.к. иначе phpunit не понимает, к какому методу относится аргумент, передаваемый with-ом.
Правильный порядок методов:

symfony4 Тестирование (testing) -- Как задать заголовок запроса

В Symfony есть встроенный компонент, дающий возможность писать тесты для вашего приложения. Здесь можно узнать, как написать простейший тест.

Тестирование функций PHPUnit пример. (указатели на функцию php)

Тестировать будем всё-таки в виде , классов, но при этом именно функции, лежащие в подключаемом файле (чтобы не копировать их в файл теста).

В частности, мы протестируем функции get_tag_list() и meta_arr_fill() которые находятся в некотором файле parser_lib.php, расположенном по адресу (пример для локальной машины) CORE_P+parser_lib.php, где CORE_P -это константа, определённая опять же некотором файле.

Итак , вот пример (читайте комментарии - разберётесь) =

Автоматическая установка PHPUnit на windows (через pear)

Для установки необходимо последовательно в режиме командной строки выполнить две команды (предварительно установив PEAR)=

pear channel-discover pear.phpunit.de

и затем =

pear install phpunit/PHPUnit

возможна ошибка, например =

Subscribe to RSS - PHPUnit