phpunit

  • ХабрахабрФото Как мы планировали повысить версию PHP за месяц, а потратили на это год

    Как мы планировали повысить версию PHP за месяц, а потратили на это год

    Как и множество больших сервисов, Яндекс Еда основана на микросервисной архитектуре. Все сервисы написаны на C++ с использованием фреймворка userver. Также мы активно развиваем внутренний фреймворк для сервисов на Golang. При этом стараемся использовать последние версии и стандарты языков. В общей сложности у нас чуть больше 200 микросервисов. Но есть один сервис, который совсем не микро. Это легаси-монолит, доставшийся Яндекс Еде после объединения…

    Читать далее »
  • ХабрахабрФото Тестирование PHP проектов на примере Symfony

    Тестирование PHP проектов на примере Symfony

    Хочу описать свои наработки и устоявшиеся подходы к тестированию PHP проектов. Последние годы я работаю с Symfony и здесь будет достаточно моментов специфичных для этого фреймворка. Так же в этой статье термин функциональные тесты (functional) является синонимом End-to-End тестов. Статья рассчитана на разработчиков уже знакомых с PHPUnit и Symfony, структурой composer файла. Врочем, здесь есть и общеизвестные моменты, чтобы облегчить…

    Читать далее »
  • ХабрахабрФото Организация PHP-тестов с большими массивами данных

    Организация PHP-тестов с большими массивами данных

    При написании тестов мы сравниваем данные, возвращаемые тестируемой функцией, с их ожидаемыми значениями. Действительные значения мы получаем из результата вызова функции, а ожидаемые значение традиционно указываем в коде теста. Зачастую ожидаемое значение является массивом, а иногда очень большим массивом. Кроме того, тестируемая функция может требовать большой массив данных в качестве входного параметра. И все эти большие массивы должны так или…

    Читать далее »
  • ДайджестФото PHP Дайджест № 212 (13 – 27 сентября 2021)

    PHP Дайджест № 212 (13 – 27 сентября 2021)

    Подборка свежих новостей и материалов из мира PHP. Вышел PHP 8. 1 RC2 и уже доступен первый пакет с использованием перечислений, будет сделан форк Magento, новый тип стандартов PER в дополнение к PSR, стартовала PhpStorm 2021. 3 EAP, Symfony 6 будет полностью типизирован — как обновляться? Для PHP 8. 2 предложены новые оптимизированные структуры данных. Также в выпуске порция инструментов,…

    Читать далее »
  • ХабрахабрФото Работа с частичными моками в PHPUnit 10

    Работа с частичными моками в PHPUnit 10

    В этом году должен выйти PHPUnit 10 (релиз планировался на 2 апреля 2021 года, но был отложен). Если посмотреть на список изменений, то бросается в глаза большое количество удалений устаревшего кода. Одним из таких изменений является удаление метода MockBuilder::setMethods(), который активно использовался при работе с частичными моками. Этот метод не рекомендуется использовать с версии 8. 0, но тем не менее…

    Читать далее »
  • ХабрахабрФото Практики при работе с PHPUnit

    Практики при работе с PHPUnit

    Не секрет, что чем больше проект, тем с большим количеством проблем он сталкивается даже в самых элементарных аспектах. В продукте Plesk, над которым я работаю, PHP является одним из основных языков, и количество кода на нем превышает 1 миллион строк. Соответственно, мы активно используем PHPUnit для тестирования. Кроме большого объема кода, поддержка двух платформ (Linux и Windows) доставляет нюансы, как…

    Читать далее »
  • ХабрахабрФото [Перевод] Улучшения покрытия PHP кода в 2020 году

    [Перевод] Улучшения покрытия PHP кода в 2020 году

    А вы знали что метрики покрытия вашего кода врут? В 2003 году Дерик Ретанс (Derick Rethans) выпустил Xdebug 1. 2. Впервые в экосистеме PHP появилась возможность собирать данные о покрытии кода. В 2004 году Себастьян Бергманн выпустил PHPUnit 2, где впервые это использовал. У разработчиков появилась возможность оценивать эффективность своих наборов тестов, используя отчеты о покрытии. С тех пор функциональность…

    Читать далее »
  • ХабрахабрФото Беги, PHPUnit, беги: как я оптимизировал время выполнения тестов

    Беги, PHPUnit, беги: как я оптимизировал время выполнения тестов

    С самого начала работы над одним из web-проектов мы стремились к высокому уровню покрытия кода тестами, и на начальном этапе разработки я не задумывался об оптимизациях скорости их выполнения. Как результат, с ростом проекта, всё большим покрытием его тестами и ростом команды время выполнения тестов выросло с нескольких секунд до десятков минут. А наличие быстрых тестов может быть также важно…

    Читать далее »
  • ХабрахабрФото PhpStorm 2020.1: поддержка composer.json, инструменты для PHPUnit, покрытие кода с PCOV и PHPDBG, Grazie и другое

    PhpStorm 2020.1: поддержка composer.json, инструменты для PHPUnit, покрытие кода с PCOV и PHPDBG, Grazie и другое

    Привет, Хабр! Рады представить первый мажорный релиз PhpStorm в этом году! Под катом подробный разбор всех заметных изменений и новых возможностей. Осторожно — много картинок. Скачать PhpStorm 2020.1 можно на сайте или с помощью Toolbox App. Там же 30-дневная пробная версия. Все продукты JetBrains доступны бесплатно для студентов и разработчиков опенсорсных проектов. Поддержка composer.json Все действия по работе с зависимостями…

    Читать далее »
  • ДайджестФото PHP-Дайджест № 173 (27 января – 10 февраля 2020)

    PHP-Дайджест № 173 (27 января – 10 февраля 2020)

    Свежая подборка со ссылками на новости и материалы. В выпуске: PHPUnit 9 и другие релизы, 3 свежих RFC предложения из PHP Internals, порция полезных инструментов, видео, подкасты и многое другое. Приятного чтения! Новости и релизы PHP Internals [RFC] Allow function calls in constant expressions — Сейчас в объявлениях констант можно использовать только литералы, константы и операции. В этом RFC предполагается…

    Читать далее »


Кнопка «Наверх»