PHPUnit

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Well very well (обсуждение | вклад) в 09:47, 26 августа 2025 (Уязвимости). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску
PHPUnit
Логотип программы PHPUnit
Тип Фреймворк модульного тестирования
Разработчик Sebastian Bergmann
Написана на PHP
Операционная система Кроссплатформенный
Языки интерфейса английский
Первый выпуск 15 марта 2004; 21 год назад (2004-03-15)[1]
Аппаратная платформа кроссплатформенность
Последняя версия 12 (7 февраля 2025; 9 месяцев назад (2025-02-07)[2])
Репозиторий github.com/sebastianberg…
Лицензия BSD 3 Clause
Сайт phpunit.de

PHPUnit — это фреймворк модульного тестирования для языка программирования PHP. Он является реализацией архитектуры xUnit для фреймворков модульного тестирования, которая зародилась с SUnit[англ.] и стала популярной благодаря JUnit. PHPUnit был создан Себастьяном Бергманном (Sebastian Bergmann), репозиторий размещён на GitHub.

Назначение

PHPUnit основан на идее о том, что разработчики должны иметь возможность быстро находить ошибки в своём новом коде и убеждаться, что в других частях кодовой базы не произошло регрессии. Как и другие фреймворки модульного тестирования, PHPUnit использует утверждения (assertions), чтобы проверить, что поведение конкретного тестируемого компонента — или «модуля» — соответствует ожидаемому.

Преимущества

Цель модульного тестирования — изолировать каждую часть программы и показать, что отдельные части работают корректно. Модульный тест предоставляет строгий контракт, которому должен соответствовать фрагмент кода. В результате использование модульных тестов помогает находить проблемы на раннем этапе цикла разработки.

PHPUnit может выводить результаты тестов в нескольких различных форматах, включая JUnit XML и TestDox[англ.].

Уязвимости

В конце 2017 года была обнаружена уязвимость CVE-2017-9841, позволявшая злоумышленникам выполнять удалённый код через PHPUnit. Отправляя на веб-сервер файл, являющийся частью PHPUnit, злоумышленник мог исполнить PHP-код этого файла на этом веб-сервере. Уязвимость была устранена разработчиком в релизах 7.5.20 и 8.5.2 от 8 января 2020 года[3].

Примечания

  1. Sebastian Bergmann blog. sebastian-bergmann.de.
  2. Release Announcement for Version 12 of PHPUnit.
  3. Bergmann, Sebastian. PHPUnit: A Security Risk? The PHP Consulting Company. Дата обращения: 20 октября 2020.

Внешние ссылки

  • phpunit.de — официальный сайт PHPUnit