Мені було цікаво, чи може хтось, хто має досвід обох цих матеріалів, пролити трохи світла на значну різницю між ними, якщо такі є?
Якась конкретна сила кожного, що робить його придатним для будь-якого конкретного випадку?
Мені було цікаво, чи може хтось, хто має досвід обох цих матеріалів, пролити трохи світла на значну різницю між ними, якщо такі є?
Якась конкретна сила кожного, що робить його придатним для будь-якого конкретного випадку?
Відповіді:
Це питання є досить застарілим, але оскільки він все ще отримує трафік і відповіді, хоча я заявляю свою думку тут ще раз, тому я вже зробив це в деяких інших (новіших) питаннях.
Я насправді здивований, що 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, ви знайдете рішення, і ви зможете знайти допомогу в будь-якому місці (ТАК, #phpunit irc канал на 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
використовувати файли .PHP SimpleTest (як пояснили інші). Для професійних програмістів, що створюють власне тестове середовище, PHPUnit здається важко перемогти, але якщо інтегрувати тестувальну систему в додаток з відкритим кодом, заснований на PHP, де "розробники" для програми можуть бути в кращому випадку (те, що я називаю) "професійними програмістами", то простота SimpleTest для мене справді приваблива. FWIW.
Зараз я віддаю перевагу PHPUnit, але коли я почав працювати, я використовував SimpleTest, оскільки не завжди мав доступ до командного рядка. SimpleTest - це приємно, але єдине, що він дійсно має над PHPUnit, на мою думку, - це веб-бігун.
Причини, які мені подобаються в PHPUnit, полягають у тому, що він інтегрується з іншими інструментами для розробників PHP, такими як phing (як це робить SimpleTest), phpUnderControl та Xinc . З версії 3.0 він має глузливу підтримку, активно розробляється, а документація - чудова.
Дійсно, єдиний спосіб відповісти на це запитання для себе - спробувати обидва на час і побачити, який краще відповідає вашому стилю.
EDIT: Phing тепер інтегрується і з SimpleTest.
Однак я міг би легко зрозуміти, як встановити SimpleTest.
(Наскільки я пам’ятаю, інструкції для PHPUnit сказали щось за принципом «встановіть це через PEAR, і ми не дамо ніяких інструкцій, як це зробити іншим способом») див:
Для SimpleTest просто завантажте його та вкажіть на нього зі свого коду.
Тож Найпростіший виграв для мене.
У Baphled є чудова стаття про SimpleTest vs PHPUnit3 .
Половина згаданих пунктів у прийнятій відповіді просто не відповідає дійсності:
SimpleTest має
Мінус:
Я встановив, що налаштувати SimpleTest було навіть простіше, ніж PHPUnit. Просто витягніть його, і ви добре піти. Користь у цьому полягає в тому випадку, якщо ви працюєте на більш ніж одній машині, оскільки ви можете зберігати весь тестовий фронт так само, як і ваш вихідний код, і тим самим знати, що ви використовуєте той самий рамковий код. Особливо, якщо ви будь-яким чином модифікуєте його.
Отже, я б сказав, що сила SimpleTest полягає в тому, що він дуже легкий і портативний.
SimpleTest також постачається з дуже простим HTML GUI, який досить просто розширити, якщо ви хочете. Наскільки мені відомо, PHPUnit не включає HTML GUI, але для завантаження доступні GUI: s, наприклад, Cool .
Добре, я зробив базу даних тестового випадку інтерфейсу інтерфейсу phpUnit і зробив це доступним у sourceforge. Використовує ajax і має досить класний інтерфейс, якщо ви хочете дати йому зняти, перевірте це у sourceforge. Назва проекту - phpunitwebui, а веб-сайт http://phpunitwebui.sourceforge.net/
Як було зазначено, це переважно вибір переваги, оскільки обидва запускають тести, які ви пишете для цього, та повідомляєте про результати.
Найпростіший веб-інтерфейс дуже корисний, але він також може часом бути громіздким. У моєму поточному проекті мені довелося б докласти більше роботи до системи, щоб моя програма (API) працювала з веб-інтерфейсом (правильно налаштувати апаш, копіювати файли в корінь public_html тощо), ніж це було б просто запустити phpunit з робочої області eclipse. Тому я обираю PHPUnit. Також використання PEAR було великим плюсом, оскільки вам не потрібно відстежувати оновлення вручну. Просто запустіть pear upgrade
раз у раз, і PHPUnit буде постійно оновлюватися.
Це з точки зору дуже випадкового розробника PHP:
На це пішло два дні, щоб зрозуміти PHPUnit, здебільшого намагаючись налагодити програму Eclipse, від якої я нарешті відмовився.
На встановлення найпростішого, включаючи налагодження під Eclipse, знадобилося дві години.
Можливо, я знайду недоліки Simpletest у майбутньому, але поки це добре робить те, що мені потрібно: TestClasses, Mock-об'єкти, налагодження тестового коду та веб-інтерфейс для швидкого огляду ситуації.
Знову ж таки: Це з точки зору дуже випадкового користувача PHP (навіть не розробника :-)
Я не перевіряв Простий тест деякий час, востаннє у нього був плагін затемнення, що є головним фактором для мене, але він не оновлювався давно. Себастьян Бергманн все ще дуже активно працює над PHPUnit, але він все ще не має гарного плагіна для затемнення - але він включений до нової Zend Studio.
Це питання давнє, але я хочу додати свій досвід: PHPUnit, здається, є стандартом зараз, але якщо ви працюєте зі застарілою системою, яка використовує багато і безліч глобальних змінних, ви можете зациклюватися на ходу. Здається, що у PHPUnit немає хорошого способу зробити тести з глобальними варами, вам здається, що вам доведеться встановлювати свої змінні за допомогою $ GLOBALS, що НЕ БУДЕ ДОБРО, якщо всюди є багато файлів, що встановлюють глобальні змінні. Добре, деякі можуть сказати, що проблема в застарілій системі, але це не означає, що ми не можемо робити тести на такій системі. З SimpleTest така річ проста. Я думаю, якщо PHPUnit дозволяє нам включати файл у всьому світі, а не в межах будь-якого класу / функції, то це також не буде великою проблемою.
Ще одне перспективне рішення - http://www.enhance-php.com , виглядає приємно :)
<phpunit backupGlobals="false">
у XML-конфігурації і ніколи не мав жодних проблем із глобальними тестами ...
global $xxx
і всі його комбінації, перш ніж спробувати --no-globals-backup
і раптом побачити все працює, як очікувалося. : D
коли є тисячі функцій, які потрібно перевірити за один раз, phpunit - це спосіб пройти, простий тест стає невдалим, оскільки він базується на веб-сторінках.
Я все ще використовую просту мережу в Інтернеті для невеликих тестів.
Але і те, і інше добре