Мне было интересно, может ли кто-нибудь, у кого есть опыт в обоих этих вещах, пролить свет на значительную разницу между ними, если таковая имеется?
Есть ли у каждого особая сила, которая делает его подходящим для любого конкретного случая?
Мне было интересно, может ли кто-нибудь, у кого есть опыт в обоих этих вещах, пролить свет на значительную разницу между ними, если таковая имеется?
Есть ли у каждого особая сила, которая делает его подходящим для любого конкретного случая?
Этот вопрос довольно устарел, но, поскольку он все еще получает трафик и ответы, я, хотя я снова заявляю свою точку зрения, даже если я уже сделал это по некоторым другим (более новым) вопросам.
Я действительно озадачен тем, что SimpleTest все еще считается альтернативой phpunit. Может быть, меня просто дезинформировали, но, насколько я видел:
web interface to phpunit tests
.Я еще не видел аргументов в пользу SimpleTest. Установить его даже не проще, поскольку PHPUnit доступен через грушу:
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.*"
}
в ваш composer.json.
Для всего, что вы хотите протестировать, PHPUnit найдет решение, и вы сможете найти помощь практически где угодно (SO, #phpunit irc channel на freenode, почти каждый разработчик php;))
Пожалуйста, поправьте меня, если я что-то не так сказал или что-то забыл :)
Видео: http://conference.phpnw.org.uk/phpnw11/schedule/sebastian-bergmann/
Слайды: http://www.slideshare.net/sebastian_bergmann/the-php-testers-toolbox-osi-days-2011
Он упоминает такие вещи, как Atoum, который называет себя: простой, современный и интуитивно понятный фреймворк модульного тестирования для PHP!
Первоначально я написал этот ответ в январе 2011 года, когда я не участвовал ни в каком проекте тестирования PHP. С тех пор я стал сотрудником PHPUnit.
include
просмотр файлов SimpleTest .PHP (как у других объяснено.) Для профессиональных программистов, создающих свою собственную тестовую среду, PHPUnit сложно превзойти, но если интегрировать систему тестирования в приложение с открытым исходным кодом на основе PHP, где могут быть разработчики для приложения в лучшем случае (как я называю) профессиональные программисты, тогда простота SimpleTest имеет реальную привлекательность, во всяком случае для меня. FWIW.
- person MikeSchinkel; 04.07.2012
Сейчас я предпочитаю PHPUnit, но когда я только начинал, я использовал SimpleTest, так как у меня не всегда был доступ к командной строке. SimpleTest хорош, но, на мой взгляд, единственное, что у него есть над PHPUnit, - это веб-раннер.
Причины, по которым мне нравится PHPUnit, заключаются в том, что он интегрируется с другими инструментами разработчика PHP, такими как phing (как и SimpleTest). , phpUnderControl и Xinc. Начиная с версии 3.0 это поддерживает mocking, активно развивается, документация отличная.
На самом деле единственный способ ответить на этот вопрос для себя - это попробовать оба варианта и посмотреть, какой из них больше подходит вашему стилю.
РЕДАКТИРОВАТЬ: Phing теперь также интегрируется с SimpleTest.
Однако я мог легко понять, как установить SimpleTest.
(Насколько я помню, в инструкциях для PHPUnit говорилось что-то вроде «установите его через PEAR, и мы не будем давать никаких инструкций о том, как это сделать по-другому») см.:
Для SimpleTest просто загрузите его и укажите на него в своем коде.
Так что Simpletest выиграл для меня.
phpunit.par
и попробовав php phpunit.phar
, я получил только Parse error: syntax error, unexpected T_FUNCTION, expecting ')'
. Не очень хорошее начало!
- person Dmitri Zaitsev; 02.10.2013
Половина упомянутых пунктов в принятом ответе просто неверны:
SimpleTest имеет
Обратная сторона:
Я обнаружил, что SimpleTest даже проще, чем PHPUnit в настройке. Просто извлеките его, и все готово. Преимущество этого заключается в том, что вы работаете на нескольких машинах, поскольку вы можете хранить всю среду тестирования так же, как и исходный код, и, таким образом, знать, что вы используете один и тот же код платформы. Особенно если его как-то модифицировать.
Итак, я бы сказал, что преимущество SimpleTest в том, что он очень легкий и портативный.
SimpleTest также поставляется с очень простым графическим интерфейсом HTML, который при желании довольно легко расширить. Насколько мне известно, PHPUnit не включает графический интерфейс HTML, но есть графические интерфейсы, доступные для загрузки, такие как Cool < / а>.
Что ж, я сделал программу запуска тестов пользовательского интерфейса на веб-основе phpUnit и сделал ее доступной на sourceforge. Использует ajax и имеет довольно крутой интерфейс, если вы хотите попробовать, проверьте его на sourceforge. Имя проекта - phpunitwebui, а веб-сайт - http://phpunitwebui.sourceforge.net/.
Как уже указывалось, это в основном выбор предпочтения, поскольку оба будут запускать тесты, которые вы для него пишете, и сообщать результаты.
Веб-интерфейс Simpletest очень полезен, но иногда может быть громоздким. В моем текущем проекте мне пришлось бы вложить больше усилий в систему, чтобы мое приложение (API) работало с веб-интерфейсом (правильно настроить apache, скопировать файлы в корень public_html и т. Д.), Чем это было бы просто запустить phpunit из рабочей области eclipse. Поэтому я выбираю PHPUnit. Кроме того, использование PEAR было большим плюсом, поскольку вам не нужно вручную отслеживать обновления. Просто запускайте pear upgrade
время от времени, и PHPUnit будет постоянно обновляться.
Это с точки зрения обычного PHP-разработчика:
Мне потребовалось два дня, чтобы разобраться в PHPUnit, в основном пытаясь отлаживать под Eclipse, от чего я наконец отказался.
На установку Simpletest, включая отладку в Eclipse, у меня ушло два часа.
Возможно, в будущем я найду недостатки Simpletest, но пока он хорошо справляется с тем, что мне нужно: TestClasses, Mock-объекты, отладка тестового кода и веб-интерфейс для быстрого снимка ситуации.
Опять же: Это с точки зрения обычного пользователя PHP (даже не разработчика :-)
Я какое-то время не проверял Simple Test, в прошлый раз у него был плагин eclipse, что для меня является важным фактором, но он давно не обновлялся. Себастьян Бергманн все еще очень активно работает над PHPUnit, но ему все еще не хватает хорошего плагина для eclipse, но он включен в новую Zend Studio.
Это старый вопрос, но я хочу добавить свой опыт: PHPUnit сейчас кажется стандартом, но если вы работаете с устаревшей системой, которая использует множество глобальных переменных, вы можете застрять с самого начала. Похоже, что нет хорошего способа проводить тесты с глобальными переменными в PHPUnit, вам, кажется, нужно устанавливать свои переменные через $ GLOBALS, что НЕ ХОРОШО, если у вас есть множество файлов, устанавливающих глобальные переменные повсюду. Хорошо, некоторые могут сказать, что проблема в устаревшей системе, но это не значит, что мы не можем проводить тесты в такой системе. С SimpleTest все просто. Я полагаю, что если PHPUnit позволяет нам включать файл глобально, а не в рамках какой-либо области класса / функции, это тоже не будет большой проблемой.
Еще одно многообещающее решение - http://www.enhance-php.com, выглядит красиво :)
<phpunit backupGlobals="false">
в XML-файле конфигурации и никогда не испытывал проблем с глобальными переменными в тестах ...
- person Potherca; 28.06.2014
global $xxx
и все его комбинации, прежде чем попробовать --no-globals-backup
и внезапно видя все работает как положено. : D
- person conny; 09.12.2014
когда есть тысячи функций, которые нужно протестировать за один раз, phpunit - это то, что нужно, простой тест не работает, поскольку он основан на сети.
Я все еще использую простой Интернет для небольших тестов.
Но оба хороши