Какое модульное тестирование в PHP запускать

Возможный дубликат:
Простой тест против PHPunit

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

Наилучшие пожелания,


person André    schedule 07.01.2011    source источник
comment
Единственная помощь в принятии объективного решения, которую я могу предложить, - это то, что PHPUnit де-факто является стандартом в UnitTesting.   -  person Gordon    schedule 07.01.2011
comment
@ Гордон, не уверен, что могу сказать, что это стандарт де-факто. Simpletest по-прежнему довольно широко используется, хотя разработка остановилась.   -  person Nathan MacInnes    schedule 07.01.2011
comment
@ Натан, от кого мне интересно? Я никогда не вижу выступающих, защищающих SimpleTest, когда я посещаю конференции. Но всегда есть люди, показывающие, как что-то делать с PHPUnit.   -  person Gordon    schedule 07.01.2011
comment
@ Гордон, может ты и прав. Я просто припоминаю, что встречал столько же проектов, использующих SimpleTest, сколько PHPUnit.   -  person Nathan MacInnes    schedule 07.01.2011
comment
Получили ли вы достаточный ответ или хотите ли вы что-нибудь добавить?   -  person edorian    schedule 16.02.2011


Ответы (5)


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

  • PHPUnit - это стандарт; большинство фреймворков используют его (например, Zend Framework, Cake, Agavi, даже Symfony отказывается от своей собственной Framework в Symfony 2 для phpunit).
  • PHPUnit is integrated in every PHP IDE (Eclipse, Netbeans, Zend Stuide, PHPStorm) and works nicely.
    • Simpletest has an eclipse extension for PHP 5.1 (a.k.a. so old that it's on sourceforge) and nothing else.
  • PHPUnit works fine with every continious integration server since it outputs all standard log files for code coverage and test reports.
    • Simpletest does not. While this is not a big problem to start with it will bite you big time once you stop "just testing" and start developing software (Yes that statement is provocative :) Don't take it too seriously).
  • PHPUnit is activly mainted, stable and works great for every codebase, every scenario and every way you want to write your tests.
    • Simpletest is unmaintained, outdated and does not work well with PHP 5.3 (released over a year ago)
  • (Subjective) PHPUnit provides much nicer code coverage reports than Simpletest
    • With PHPUnit you also get these reports inside your IDE (Netbeans, Eclipse, ...)

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

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

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

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

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

person edorian    schedule 07.01.2011
comment
Согласен, очень хорошо. Я думаю, что привлекает то, что это выглядит проще для тех, кто только начинает модульное тестирование PHP. И его проще установить, если вы не используете PEAR (что, верьте или нет, некоторые люди не используют): вы просто загружаете zip-архив и открываете его. - person Nathan MacInnes; 07.01.2011
comment
@Nathan: Согласен, если вы не используете установщик груши (мы не делаем этого на работе, например), phpunit действительно может быть основным пита для запуска, если вы не знаете, что тоже ищите :). Тем более что 3.5 - person edorian; 10.01.2011
comment
В ответ может потребоваться некоторое обновление, phpunit больше не использует грушу, ссылки на покрытие кода не работают и т. Д. - person Kzqai; 23.07.2014

Я начал с SimpleTest, потому что кривая обучения не казалась такой крутой. Но он не поддерживается и вызывает множество предупреждений в PHP5.3, а также о невозможности сделать все, что я хотел. В конце концов мне пришлось переключиться на PHPUnit, что было долгим процессом преобразования моих тестов. Если бы я только начал с PHPUnit!

person Nathan MacInnes    schedule 07.01.2011
comment
И я все еще не уверен, что мое тестовое покрытие с PHPUnit составляет 100%, тогда как если бы я использовал TDD с PHPUnit с самого начала, это было бы так. - person Nathan MacInnes; 07.01.2011

SimpleTest немного легче понять, но PHPUnit - лучший (по крайней мере, на мой взгляд), поэтому, если вы хотите начать изучать и использовать фреймворк, начните с того, который вы собираетесь использовать, когда будете мастером в TDD. Не думайте, что сейчас проще или сложнее, потому что, если вы начнете, например, с SimpleTest, вы начнете использовать Zend Framework, потому что ваш босс говорит вам об этом, вам придется использовать PHPUnit с ZF. Так что подумайте о своем будущем, потому что простой в освоении фреймворк не обязательно должен быть лучшим, обычно чем сложнее понять, тем лучше фреймворк.

Также посмотрите их версии, посмотрите, какая из них поддерживается лучше.

person Poelinca Dorin    schedule 07.01.2011

Я обнаружил, что SimpleTest легко запустить и использовать в моих целях. На данный момент серьезных проблем не обнаружено. Руководство / веб-сайт немного сбивает с толку, но с некоторым поиском примеров этого достаточно.

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

person Nanne    schedule 07.01.2011

Вот хорошее чтение ... Здесь используется SimpleTest, и для начала он лучше, чем PHPUnit ...

Руководство по модульному тестированию для новичков

person rajesh pillai    schedule 07.01.2011
comment
Вообще-то, нет. Он дразнит PHPUnit, а затем проходит через SimpleTest, поскольку это гораздо более простая среда тестирования. - person Adam; 07.01.2011
comment
Ага .. Я имел в виду, что он использует SimpleTest :) - person rajesh pillai; 07.01.2011