SimpleTest vs PHPunit



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



любая специфическая прочность каждого, что делает его пригодным для любого конкретного случая?

667   12  

12 ответов:

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

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

  • PHPUnit является стандартом; большинство фреймворков используют его (например, Zend Framework (1&2), Cake, Agavi, даже Symfony сбрасывает свои собственные рамки в Symfony 2 для phpunit).
  • в PHPUnit интегрирован в каждый среда разработки для PHP (в Eclipse, в NetBeans, Зенд Stuide, PhpStorm именно) и работает хорошо.
  • Simpletest имеет расширение eclipse для PHP 5.1 (a.k.a. old) и ничего больше.
  • PHPUnit отлично работает с каждым сервером непрерывной интеграции, так как он выводит все стандартные файлы журнала для покрытия кода и отчетов о тестировании.
  • Simpletest не. В то время как это не большая проблема, чтобы начать с этого укусит вас большое время, как только вы прекратите "просто тестирование" и начать разработку программного обеспечения (Да, это заявление провокационно :) не принимайте это слишком серьезно).
  • PHPUnit активно поддерживается, стабилен и отлично работает для каждой кодовой базы, каждого сценария и каждого способа написания тестов.
  • (субъективно) PHPUnit обеспечивает гораздо приятнее отчеты о покрытии кода чем Simpletest
  • С 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 просто скачать phar и работает:

php phpunit-.phar

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

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

в свой композитор.формат JSON.


для всего, что вы хотите проверить PHPUnit будет иметь решение, и вы сможете найти помощь довольно многое в любом месте (так, #phpunit irc канал на 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, такими как пинг (как SimpleTest), phpUnderControl и Xinc. В версии 3.0 это имеет издевательский поддержка ведется активная разработка, и документация отличная.

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

EDIT: Phing теперь интегрируется с SimpleTest.

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

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

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

на SimpleTest, просто загрузите его и укажите на него из своего кода.

так Simpletest выиграл для меня.

Baphled имеет хорошую статью о SimpleTest vs PHPUnit3.

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

SimpleTest есть

  • более простая настройка (извлечение в папку, включение и запуск)
  • просто проверьте папку в системе управления версиями (попробуйте сделать это с phpunit в настоящее время:))
  • меньше зависимостей и множество расширений (webtester, приборе, авт)
  • хороший репортер охвата кода, который легок для того чтобы удлинить (многоточия, имена функции, цвета)
  • резюме покрытия кода (наконец, приземлился в PHPUnit 4.x)
  • приличный веб-бегун и веб-бегун ajax, с группами и одиночными исполнениями файлов
  • еще лучше инструмент diff (без пробелов или проблем с новой строкой)
  • адаптер / обертка для запуска SimpleTests от phpUnit и наоборот
  • активно поддерживается на GitHub:https://github.com/simpletest
  • совместимость РНР5.4+

недостаток:

  • не промышленный стандарт (PHPUnit)

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

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

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

Ну я сделал по PHPUnit веб-тестов пользовательского интерфейса корпус бегунка и сделали их доступными на SourceForge. Использует ajax и имеет довольно крутой интерфейс, а если вы хотите дать ему шанс проверить его в sourceforge. Имя проекта-phpunitwebui, а веб-сайт -http://phpunitwebui.sourceforge.net/

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

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

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

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

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

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

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

Мне потребовалось два часа, чтобы настроить Simpletest, включая отладку под Eclipse.

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

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

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

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

но оба хороши

Comments

    Ничего не найдено.