Вопрос

Мне было интересно, может ли кто-нибудь, у кого есть опыт в обоих этих вещах, пролить некоторый свет на значительный разница между этими двумя, если таковая имеется?

Есть ли у каждого из них какая-то особая сила, которая делает его подходящим для любого конкретного случая?

Это было полезно?

Решение

Этот вопрос довольно устарел, но поскольку он все еще получает трафик и ответы, я, тем не менее, еще раз излагаю здесь свою точку зрения, хотя я уже делал это по некоторым другим (более новым) вопросам.

I'm действительно, действительно сбитый с толку этим простейшим все еще считается альтернативой phpunit.Может быть, я просто дезинформирован, но, насколько я видел,:

  • PHPUnit является стандартом;большинство фреймворков используют его (например, Zend Framework (1 и 2), Cake, Agavi, даже Symfony выпускает свой собственный фреймворк в Symfony 2 для phpunit).
  • PHPUnit интегрирован в каждую среду разработки PHP (Eclipse, Netbeans, Zendstuide, PhpStorm) и прекрасно работает.
  • Simpletest имеет расширение eclipse для PHP 5.1 (также известное какстарый) и ничего больше.
  • PHPUnit прекрасно работает с любым сервером непрерывной интеграции, поскольку выводит все стандартные файлы журналов для покрытия кода и отчетов о тестировании.
  • Самый простой - нет.Хотя для начала это не такая уж большая проблема, она сильно огорчит вас, как только вы перестанете "просто тестировать" и начнете разрабатывать программное обеспечение (Да, это заявление провокационное :) Не воспринимайте его слишком серьезно).
  • PHPUnit активно поддерживается, стабилен и отлично работает для любой кодовой базы, любого сценария и любого способа написания ваших тестов.
  • (Субъективный) PHPUnit обеспечивает гораздо более приятный отчеты о покрытии кода чем Самый Простой
  • С помощью PHPUnit вы также получаете эти отчеты внутри вашей IDE (Netbeans - сетевые приложения, Затмение, ...)
  • Также есть пара предложений по web interface to phpunit tests.

Я пока не вижу ни одного аргумента в пользу SimpleTest.Установить его ничуть не проще, поскольку PHPUnit доступен через pear:

pear channel-discover pear.phpunit.de
pear install phpunit/PHPUnit

и "первый тест" выглядит примерно так же.

По состоянию на PHPUnit 3.7 это еще проще в установке это можно сделать, просто используя PHAR Archive

wget http://pear.phpunit.de/get/phpunit.phar
chmod +x phpunit-3.7.6.phar

или для Windows просто загрузка фар и бег:

php phpunit-.phar

или при использовании поддерживаемая установка composer способы , подобные

"require-dev": {
    "phpunit/phpunit": "3.7.*"
}

вашему composer.json.


Для всего, что вы хотите протестировать, у PHPUnit будет решение, и вы сможете найти помощь практически в любом месте (ИТАК, irc-канал #phpunit на freenode, практически у каждого разработчика php ;))

Пожалуйста, поправьте меня, если я сказал что-то не так или что-то забыл :)

Обзор инструментов тестирования PHP

Видео: http://conference.phpnw.org.uk/phpnw11/schedule/sebastian-bergmann/

Слайды: http://www.slideshare.net/sebastian_bergmann/the-php-testers-toolbox-osi-days-2011

В нем упоминаются такие вещи, как Атум который называет себя:"Простой, современный и интуитивно понятный фреймворк модульного тестирования для PHP!"


Полное раскрытие информации

Первоначально я написал этот ответ в январе.2011, где я не имел никакого отношения к какому-либо проекту тестирования PHP.С тех пор я стал участником PHPUnit.

Другие советы

Сейчас я предпочитаю PHPUnit, но когда я начинал, я использовал SimpleTest, поскольку у меня не всегда был доступ к командной строке. SimpleTest хорош, но, на мой взгляд, единственное, что у него есть над PHPUnit - это веб-бегун.

Мне нравится PHPUnit по той причине, что он интегрируется с другими инструментами PHP-разработчика, такими как phing (как выполняет SimpleTest), phpUnderControl и Xinc . Начиная с версии 3.0 это имеет поддержку насмешливого , активно развивается, и документация превосходна.

Действительно, единственный способ ответить на этот вопрос для себя - это попробовать какое-то время и посмотреть, какой из них лучше подходит вашему стилю.

РЕДАКТИРОВАТЬ: Phing теперь также интегрируется с SimpleTest.

  • Я НЕ мог понять, как загрузить и установить PHPUnit.
  • Однако я мог бы легко понять, как установить SimpleTest.

    (Насколько я могу вспомнить инструкции для PHPUnit сказал что-то вроде "установите это через PEAR, и мы не будем давать никаких инструкций о том, как сделать это каким-либо другим способом") смотрите:

  • http://www.phpunit.de/manual/current/en/installation.html

Для Самый простой, просто скачайте его и укажите на него в своем коде.

Так что самый простой победил для меня.

У Baphled есть хорошая статья о SimpleTest vs PHPUnit3 .

Половина упомянутых пунктов в принятом ответе просто не соответствуют действительности:

Самый простой имеет

  • более простая настройка (извлечь в папку, включить и запустить)
  • просто проверьте папку в системе управления версиями (попробуйте сделать это с помощью phpunit в наши дни :))
  • меньше зависимостей и множество расширений (webtester, formtester, auth)
  • хороший репортаж о покрытии кода, который легко расширить (точки, названия функций, цвета).
  • краткое описание покрытия кода (наконец-то появилось в PHPUnit 4.x)
  • приличный веб-раннер и веб-раннер ajax, с выполнением групп и отдельных файлов
  • еще лучший инструмент для различения (без проблем с пробелами или переводом строки)
  • адаптер / оболочка для запуска SimpleTests с помощью PHPUnit и наоборот
  • совместимость PHP5.4+

Обратная сторона:

  • не является отраслевым стандартом (PHPUnit)
  • не поддерживается активно

Я обнаружил, что SimpleTest даже проще, чем PHPUnit, настроить. Просто извлеките его, и вы готовы идти. Преимущество этого заключается в том, что вы работаете более чем на одной машине, поскольку вы можете хранить всю инфраструктуру тестирования таким же образом, как и ваш исходный код, и тем самым знать, что вы используете один и тот же код платформы. Особенно, если вы измените его каким-либо образом.

Итак, я бы сказал, что преимуществом SimpleTest является то, что он очень легкий и портативный.

SimpleTest также поставляется с очень простым HTML GUI, который довольно легко расширить, если вы захотите. Насколько я знаю, PHPUnit не включает HTML GUI, но есть доступные для загрузки GUI, такие как Cool .

Как уже указывалось, это в основном предпочтительный вариант, поскольку оба будут запускать тесты, которые вы для него пишете, и сообщать о результатах.

Упрощенный веб-интерфейс очень полезен, но иногда он может быть громоздким. В моем текущем проекте мне пришлось бы добавить больше работы в систему, чтобы приложение (API) работало с веб-интерфейсом (правильно настроить apache, скопируйте файлы в корень public_html и т. Д.), Чем это было бы просто запустить phpunit из рабочей области eclipse. Поэтому я выбираю PHPUnit. Кроме того, использование PEAR было большим плюсом, поскольку вам не нужно вручную отслеживать обновления. Просто запускайте pear upgrade время от времени, и PHPUnit будет обновляться.

Я не проверял Simple Test некоторое время, в прошлый раз у него был плагин Eclipse, который является для меня важным фактором, но он долгое время не обновлялся. Себастьян Бергманн все еще очень активно работает над PHPUnit, но ему все еще не хватает хорошего плагина для затмения - но он включен в новую Zend Studio.

Этот вопрос старый, но я хочу добавить свой опыт: PHPUnit сейчас кажется стандартом, но если вы работаете с устаревшей системой, которая использует множество глобальных переменных, вы можете застрять с самого начала. Кажется, что в PHPUnit нет хорошего способа сделать тесты с глобальными переменными, вам, похоже, придется устанавливать переменные через $ GLOBALS, что НИЧЕГО ХОРОШО, если у вас есть куча файлов, устанавливающих глобальные переменные везде. Хорошо, некоторые могут сказать, что проблема в устаревшей системе, но это не значит, что мы не можем проводить тесты на такой системе. С SimpleTest такая вещь проста. Я полагаю, если PHPUnit позволяет нам включать файл глобально, а не в какую-либо область действия класса / функции, то это не будет слишком большой проблемой.

Еще одно многообещающее решение - http://www.enhance-php.com , выглядит красиво :)

Это с точки зрения очень простого разработчика PHP:

Мне потребовалось два дня, чтобы понять PHPUnit, в основном пытаясь отлаживать в Eclipse, от которого я наконец отказался.

У меня ушло два часа на настройку Simpletest, включая отладку в Eclipse.

Возможно, я найду недостатки Simpletest в будущем, но пока он хорошо справляется с тем, что мне нужно: TestClasses, Mock объекты, отладка тестового кода и веб-интерфейс для быстрого снимка ситуации.

Опять же: Это с точки зрения очень случайного пользователя PHP (даже не разработчика: -)

Когда есть тысячи функций для тестирования за один раз, phpunit - это путь, простой тест терпит неудачу, поскольку он основан на веб-технологиях.

Я все еще использую простую веб-версию для небольшого теста.

Но оба хороши

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top