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 Archivewget 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