Zastanawiałem się, czy ktoś, kto ma doświadczenie w obu tych sprawach, może rzucić trochę światła na znaczącą różnicę między nimi, jeśli w ogóle?
Jakaś konkretna siła każdego z nich sprawia, że nadaje się do konkretnego przypadku?
Zastanawiałem się, czy ktoś, kto ma doświadczenie w obu tych sprawach, może rzucić trochę światła na znaczącą różnicę między nimi, jeśli w ogóle?
Jakaś konkretna siła każdego z nich sprawia, że nadaje się do konkretnego przypadku?
Odpowiedzi:
To pytanie jest dość przestarzałe, ale ponieważ wciąż pojawia się ruch i odpowiedzi, pomyślałem, że powiem tutaj jeszcze raz, mimo że zrobiłem to już w przypadku innych (nowszych) pytań.
Jestem naprawdę zdumiony, że SimpleTest nadal jest uważany za alternatywę dla phpunita. Może jestem po prostu źle poinformowany, ale o ile widziałem:
web interface to phpunit tests
.Nie widziałem jeszcze żadnego argumentu na rzecz SimpleTest. Instalacja nie jest nawet prostsza, ponieważ PHPUnit jest dostępny za pośrednictwem gruszki:
pear channel-discover pear.phpunit.de
pear install phpunit/PHPUnit
a „pierwszy test” wygląda prawie tak samo.
Ponieważ instalacja PHPUnit 3.7
jest jeszcze łatwiejsza , wystarczy użyć rozszerzeniaPHAR Archive
wget http://pear.phpunit.de/get/phpunit.phar
chmod +x phpunit-3.7.6.phar
lub dla Windows, po prostu pobierając phar i uruchamiając:
php phpunit-.phar
lub podczas korzystania z obsługiwanych sposobów instalacji kompozytora, takich jak
"require-dev": {
"phpunit/phpunit": "3.7.*"
}
do Twojego pliku composer.json.
Na wszystko, co chcesz przetestować, PHPUnit będzie miało rozwiązanie i będziesz mógł znaleźć pomoc praktycznie wszędzie (SO, kanał #phpunit irc na freenode, prawie każdy programista php;))
Proszę popraw mnie, jeśli stwierdziłem coś złego lub zapomniałem :)
Wideo: http://conference.phpnw.org.uk/phpnw11/schedule/sebastian-bergmann/
Slajdy: http://www.slideshare.net/sebastian_bergmann/the-php-testers-toolbox-osi-days-2011
Wspomina takie rzeczy jak Atoum, który nazywa siebie: „Prosty, nowoczesny i intuicyjny framework do testów jednostkowych dla PHP!”
Oryginalnie napisałem tę odpowiedź w styczniu 2011 r., Gdzie nie miałem żadnego powiązania z żadnym projektem testowania PHP. Od tego czasu zostałem współtwórcą PHPUnit.
include
umieszczanie plików SimpleTest .PHP (jak wyjaśniły inne). dla profesjonalnych programistów budynku z własną PHPUnit środowiska testowego brzmi trudno pokonać, ale jeśli zintegrowanie systemu testowego do aplikacji open-source PHP opartych na miarę „deweloperzy” dla aplikacji może być w najlepszym razie (co nazywam) „programiści zawodowe” , a następnie prostota SimpleTest jest dla mnie naprawdę atrakcyjna. FWIW.
Wolę teraz PHPUnit, ale kiedy zaczynałem, korzystałem z SimpleTest, ponieważ nie zawsze miałem dostęp do wiersza poleceń. SimpleTest jest fajny, ale moim zdaniem jedyną rzeczą, jaką ma nad PHPUnit, jest web runner.
Powodem, dla którego lubię PHPUnit, jest to, że integruje się z innymi narzędziami programistycznymi PHP, takimi jak phing (podobnie jak SimpleTest), phpUnderControl i Xinc . Od wersji 3.0 obsługuje symulację , jest aktywnie rozwijany, a dokumentacja jest doskonała.
Naprawdę jedynym sposobem, aby odpowiedzieć sobie na to pytanie, jest wypróbowanie obu przez jakiś czas i przekonanie się, który lepiej pasuje do Twojego stylu.
EDYCJA: Phing integruje się teraz również z SimpleTest.
Mogłem jednak łatwo zrozumieć, jak zainstalować SimpleTest.
(O ile dobrze pamiętam, w instrukcji dla PHPUnit było napisane coś w stylu „zainstaluj go przez PEAR i nie podamy żadnych instrukcji, jak to zrobić w inny sposób”) zobacz:
W przypadku SimpleTest wystarczy go pobrać i wskazać w kodzie.
Wygrał więc dla mnie Simpletest.
Baphled ma fajny artykuł na temat SimpleTest vs PHPUnit3 .
Połowa wymienionych punktów w przyjętej odpowiedzi jest po prostu nieprawdziwa:
SimpleTest ma
Wada:
Zauważyłem, że konfiguracja SimpleTest jest jeszcze łatwiejsza niż PHPUnit. Po prostu go wyodrębnij i gotowe. Korzyścią jest to, że pracujesz na więcej niż jednej maszynie, ponieważ możesz przechowywać całą strukturę testową w taki sam sposób, jak kod źródłowy, a tym samym wiedzieć, że używasz tego samego kodu struktury. Zwłaszcza jeśli zmodyfikujesz go w jakikolwiek sposób.
Więc powiedziałbym, że zaletą SimpleTest jest to, że jest bardzo lekki i przenośny.
SimpleTest jest również dostarczany z bardzo prostym interfejsem graficznym HTML, który można łatwo rozszerzyć, jeśli chcesz. O ile wiem, PHPUnit nie zawiera GUI HTML, ale są dostępne do pobrania GUI, takie jak Cool .
Cóż, stworzyłem internetowy tester przypadków UI w phpUnit i udostępniłem go na sourceforge. Używa Ajaxa i ma całkiem fajny interfejs, jeśli chcesz go wypróbować, sprawdź to na sourceforge. Nazwa projektu to phpunitwebui, a strona internetowa to http://phpunitwebui.sourceforge.net/
Jak już wskazano, jest to głównie wybór preferencyjny, ponieważ obaj uruchomią testy, które dla niego napiszesz, i przedstawią wyniki.
Interfejs sieciowy Simpletest jest bardzo przydatny, ale czasami może być również uciążliwy. W moim obecnym projekcie musiałbym włożyć więcej pracy w system, aby moja aplikacja (API) działała z interfejsem internetowym (poprawnie skonfiguruj apache, skopiuj pliki do katalogu głównego public_html itp.), Niż byłoby to możliwe aby po prostu uruchomić phpunit z obszaru roboczego eclipse. Dlatego wybieram PHPUnit. Ponadto użycie PEAR było dużym plusem, ponieważ nie trzeba ręcznie śledzić aktualizacji. Po prostu uruchamiaj pear upgrade
raz na jakiś czas, a PHPUnit będzie zawsze aktualne.
Z punktu widzenia bardzo przypadkowego programisty PHP:
Zrozumienie PHPUnit zajęło mi dwa dni, głównie próbując debugować pod Eclipse, z którego w końcu się poddałem.
Konfiguracja Simpletest, w tym debugowanie w Eclipse, zajęła mi dwie godziny.
Być może w przyszłości znajdę wady Simpletest, ale jak dotąd działa dobrze to, czego potrzebuję: TestClasses, Mock objects, debugowanie kodu testowego i interfejs sieciowy dla szybkiego migawki sytuacji.
Znowu: to z punktu widzenia bardzo zwykłego użytkownika PHP (nawet nie programisty :-)
Od jakiegoś czasu nie sprawdzałem Simple Test, ostatnio miałem wtyczkę Eclipse, co jest dla mnie głównym czynnikiem, ale od dawna nie była aktualizowana. Sebastian Bergmann nadal bardzo aktywnie pracuje nad PHPUnit, ale nadal brakuje mu dobrej wtyczki do zaćmienia - ale jest ona dołączona do nowego Zend Studio.
To pytanie jest stare, ale chcę dodać moje doświadczenie: PHPUnit wydaje się być teraz standardem, ale jeśli pracujesz ze starszym systemem, który używa wielu, wielu zmiennych globalnych, możesz utknąć od samego początku. Wygląda na to, że nie ma dobrego sposobu na wykonanie testów z globalnymi zmiennymi w PHPUnit, wydaje się, że musisz ustawić swoje zmienne za pośrednictwem $ GLOBALS, co NIE jest DOBRE, jeśli masz mnóstwo plików ustawiających zmienne globalne wszędzie. OK, niektórzy mogą powiedzieć, że problem występuje w starszym systemie, ale to nie znaczy, że nie możemy przeprowadzić testów na takim systemie. Z SimpleTest takie rzeczy są proste. Przypuszczam, że gdyby PHPUnit pozwalało nam dołączyć plik globalnie, a nie w jakimkolwiek zakresie klas / funkcji, to również nie byłoby to zbyt dużym problemem.
Innym obiecującym rozwiązaniem jest http://www.enhance-php.com , ładnie wygląda :)
<phpunit backupGlobals="false">
w config XML i nigdy nie miałem żadnych problemów z globalnymi w testach ...
global $xxx
i wszystkie ich kombinacje, zanim spróbowałem --no-globals-backup
i nagle zobaczyłem wszystkie działa zgodnie z oczekiwaniami. : D
Kiedy istnieją tysiące funkcji do przetestowania za jednym zamachem, phpunit jest do zrobienia, prosty test nie działa, ponieważ jest oparty na sieci.
Nadal używam prostej sieci do testów na małą skalę.
Ale oba są dobre