Какую систему модульного тестирования вы используете для Symfony? - PullRequest
4 голосов
/ 07 августа 2009

Какую систему модульного тестирования вы используете для Symfony?

Лайм или PHPUnit? Каковы плюсы и минусы их использования?

Ответы [ 2 ]

8 голосов
/ 07 августа 2009

На мой взгляд, вот несколько вещей, которые приходят мне на ум:

  • PHPUnit более интегрирован с другими инструментами, такими как, например,
    • Selenium (PHPUnit может использовать его для открытия настоящих реальных браузеров для проверки вашего сайта)
    • phpUnderControl для непрерывной интеграции
  • PHPUnit хорошо работает с Xdebug , для генерации отчетов о покрытии кода
  • PHPUnit используется более широко; что, вероятно, означает больше поддержки

Но заметьте, я не работаю ни с symfony, ни с lime ...
Тем не менее, я никогда не слышал, чтобы кто-то говорил об этом, кроме тех, кто работает с Symfony - это не очень хорошая вещь, потому что в тот день вам придется работать с другим фреймворком (да, это происходит ^^)


Одна вещь, которой нет в PHPUnit:

  • «ложный» браузер (возможность делать HTTP-запросы к приложению, без использования Selenium для открытия реального браузера)

Но некоторые фреймворки (Zend Framework делает с его компонентом Zend_Test) интегрируются с PHPUnit (или используют его), позволяя вводить данные в MVC и извлекать ответ, без необходимости выдавать какие-либо HTTP-запрос.
Я не знаю, позволяет ли это Symfony, но с ZF / PHPUnit это хорошо, ^^


(Да, это не специфический для Symfony ответ; но то, что я сказал, должно быть в силе с этой структурой)

6 голосов
/ 07 августа 2009

Lime - намного более простая среда тестирования, которая может быть хорошей или плохой, в зависимости от того, как вы хотите ее использовать.

Библиотека symfony сама использует свою собственную среду тестирования, Lime, для проверки своей базы кода. Из книги Symfony:

Он основан на тесте :: More Perl библиотека, и является TAP-совместимым, который означает, что результат испытаний отображается как указано в тесте Что-нибудь протокол, разработанный для лучшего удобочитаемость результатов теста.

Я не могу ручаться за утверждение, что платформа lime более «легка», чем другие среды тестирования PHP, как утверждают документы symfony, но мне действительно нравится, что она встроена прямо в ваш проект symfony и хорошо работает с командной строкой symfony инструменты без какой-либо дополнительной настройки. Особенно приятно то, что тесты lime в Symfony настроены на выполнение в вашей «тестовой» среде, которая имеет собственную базу данных, кэш Symfony (который очищается во время каждого сеанса тестирования) и переменные среды. Это удобно, когда вы хотите провести функциональное тестирование (проверка ответа сервера и вывод html в ваших модулях / действиях, а не базовое тестирование модулей). Мне также нравится, что лайм очень легко подобрать и понять, так как он очень прост. У вас также есть возможность поместить свои тесты в файл конфигурации YAML, а не писать тесты вручную.

Паскаль совершенно прав, что PHPUnit гораздо более широко используется, и вы сможете использовать его в проектах, не связанных с symfony. Для этого есть даже плагин, PHPUnit, плагин Symfony . Мой лучший совет - использовать lime, если вы просто хотите сразу приступить к написанию простых тестов при разработке приложения Symfony. Но если у вас есть время и надежда использовать эти навыки тестирования за пределами мира Symfony или добавить уже существующие тесты PHPUnit в свой код Symfony, то стоит потратить время на проверку плагина и его вращение .

...