Mi chiedevo se qualcuno che ha esperienza in entrambe queste cose può far luce sulla differenza significativa tra i due, se presente?
Qualche forza specifica di ciascuno che lo rende adatto a qualsiasi caso specifico?
Mi chiedevo se qualcuno che ha esperienza in entrambe queste cose può far luce sulla differenza significativa tra i due, se presente?
Qualche forza specifica di ciascuno che lo rende adatto a qualsiasi caso specifico?
Risposte:
Questa domanda è piuttosto datata, ma poiché sta ancora ottenendo traffico e risposte, anche se dichiaro di nuovo il mio punto qui, quindi l'ho già fatto su alcune altre (più recenti) domande.
Sono davvero sconcertato dal fatto che SimpleTest sia ancora considerato un'alternativa a phpunit. Forse sono solo male informato, ma per quanto ho visto:
web interface to phpunit tests
.Non ho ancora visto alcun argomento a favore di SimpleTest. Non è nemmeno più semplice da installare poiché PHPUnit è disponibile tramite pear:
pear channel-discover pear.phpunit.de
pear install phpunit/PHPUnit
e il "primo test" sembra più o meno lo stesso.
A partire da PHPUnit 3.7
è ancora più facile installarlo semplicemente usando ilPHAR Archive
wget http://pear.phpunit.de/get/phpunit.phar
chmod +x phpunit-3.7.6.phar
o per Windows basta scaricare Phar ed eseguire:
php phpunit-.phar
o quando si utilizza il compositore supportato installare modi come
"require-dev": {
"phpunit/phpunit": "3.7.*"
}
al tuo compositore.json.
Per tutto quello che vuoi testare PHPUnit avrà una soluzione e sarai in grado di trovare aiuto praticamente ovunque (SO, #phpunit canale irc su freenode, praticamente ogni sviluppatore php;))
Per favore, correggimi se ho dichiarato qualcosa di sbagliato o ho dimenticato qualcosa :)
Video: http://conference.phpnw.org.uk/phpnw11/schedule/sebastian-bergmann/
Slides: http://www.slideshare.net/sebastian_bergmann/the-php-testers-toolbox-osi-days-2011
Menziona cose come Atoum che si autodefinisce: "Un framework di unit test semplice, moderno e intuitivo per PHP!"
Ho originariamente scritto questa risposta nel gennaio 2011 in cui non avevo alcuna affiliazione con nessun progetto di test PHP. Da allora sono diventato un collaboratore di PHPUnit.
include
inging dei file .PHP di SimpleTest (come altri hanno spiegato.) Per i programmatori professionisti che creano il proprio ambiente di test PHPUnit sembra difficile da battere, ma se si integra un sistema di test in un'app open source basata su PHP in cui "sviluppatori" per l'app potrebbero essere nella migliore delle ipotesi (ciò che chiamo) "programmatori occupazionali", allora la semplicità di SimpleTest ha comunque un fascino reale per me. FWIW.
Preferisco PHPUnit ora, ma quando ho iniziato ho usato SimpleTest in quanto non avevo sempre accesso alla riga di comando. SimpleTest è carino, ma l'unica cosa che ha davvero su PHPUnit, secondo me, è il web runner.
Le ragioni per cui mi piace PHPUnit sono che si integra con altri strumenti di sviluppo PHP come phing (come fa SimpleTest), phpUnderControl e Xinc . A partire dalla versione 3.0 ha un supporto beffardo , viene attivamente sviluppato e la documentazione è eccellente.
L'unico modo per rispondere a questa domanda è provare entrambi per un po 'e vedere quale si adatta meglio al tuo stile.
EDIT: Phing ora si integra anche con SimpleTest.
Tuttavia, potrei facilmente capire come installare SimpleTest.
(Per quanto posso ricordare le istruzioni per PHPUnit hanno detto qualcosa sulla falsariga di "installarlo tramite PEAR e non daremo alcuna istruzione su come farlo in altro modo") vedere:
Per SimpleTest , basta scaricarlo e puntarlo dal tuo codice.
Quindi il più semplice ha vinto per me.
Baphled ha un bell'articolo su SimpleTest vs PHPUnit3 .
La metà dei punti citati nella risposta accettata semplicemente non è vera:
SimpleTest ha
Il rovescio della medaglia:
Ho scoperto che SimpleTest era persino più facile da configurare di PHPUnit. Basta estrarlo e sei a posto. Un vantaggio di questo è se stai lavorando su più di una macchina, poiché puoi archiviare l'intero framework di test allo stesso modo del tuo codice sorgente, e quindi sapere che stai utilizzando lo stesso codice framework. Soprattutto se lo modifichi in alcun modo.
Quindi, direi che un punto di forza di SimpleTest è che è molto leggero e portatile.
SimpleTest viene inoltre fornito con una GUI HTML molto semplice, che è abbastanza facile da estendere se lo si desidera. Per quanto ne so, PHPUnit non include una GUI HTML, ma ci sono GUI disponibili per il download, come Cool .
Bene, ho creato un runner per test case dell'interfaccia utente basato su web phpUnit e l'ho reso disponibile su sourceforge. Utilizza ajax e ha un'interfaccia abbastanza interessante anche se vuoi provarlo, controlla su sourceforge. Il nome del progetto è phpunitwebui e il sito Web è http://phpunitwebui.sourceforge.net/
Come è stato sottolineato, è principalmente una scelta di preferenza, poiché entrambi eseguiranno i test scritti per esso e riporteranno i risultati.
L'interfaccia utente Web più semplice è molto utile, ma a volte può anche risultare ingombrante. Nel mio progetto attuale, avrei dovuto mettere più lavoro in un sistema per far funzionare la mia applicazione (un'API) con l'interfaccia web (impostare correttamente Apache, copiare i file nella radice public_html, ecc.) Di quanto sarebbe stato per eseguire semplicemente phpunit dallo spazio di lavoro di eclipse. Pertanto ho scelto PHPUnit. Inoltre, l'uso di PEAR è stato un grande vantaggio poiché non è necessario tenere traccia manualmente degli aggiornamenti. Esegui semplicemente pear upgrade
una volta ogni tanto e PHPUnit sarà tenuto aggiornato.
Questo è dal punto di vista di uno sviluppatore PHP molto occasionale:
Mi ci sono voluti due giorni per afferrare PHPUnit, per lo più cercando di eseguire il debug sotto Eclipse a cui alla fine ho rinunciato.
Mi ci sono volute due ore per installare Simpletest, incluso il debug sotto Eclipse.
Forse troverò le carenze di Simpletest in futuro, ma finora fa bene quello di cui ho bisogno: TestClass, oggetti Mock, debug di test-code e interfaccia web per una rapida istantanea della situazione.
Ancora una volta: questo dal punto di vista di un utente PHP molto casual (nemmeno sviluppatore :-)
Non ho controllato Simple Test per un po ', l'ultima volta aveva un plugin eclipse, che è un fattore importante per me, ma non è stato aggiornato da molto tempo. Sebastian Bergmann sta ancora lavorando attivamente su PHPUnit, ma manca ancora un buon plugin per eclipse - ma è incluso per il nuovo Zend Studio.
Questa domanda è vecchia, ma voglio aggiungere la mia esperienza: PHPUnit sembra essere lo standard ora, ma se lavori con un sistema legacy che utilizza molte variabili globali, potresti rimanere bloccato fin dall'inizio. Sembra che non ci sia un buon modo per fare test con varianti globali in PHPUnit, sembra che tu debba impostare le tue variabili tramite $ GLOBALS che NON È BUONO se hai tonnellate di file che impostano variabili globali ovunque. OK alcuni potrebbero dire che il problema è nel sistema legacy, ma ciò non significa che non possiamo fare test su tale sistema. Con SimpleTest tale cosa è semplice. Suppongo che se PHPUnit ci consente di includere un file a livello globale, non all'interno di alcun ambito di classe / funzione, non si tratterebbe troppo di un problema.
Un'altra soluzione promettente è http://www.enhance-php.com , sembra carina :)
<phpunit backupGlobals="false">
l'XML di configurazione e non ho mai avuto problemi con i globali nei test ...
global $xxx
e tutte le sue combinazioni, prima di provare --no-globals-backup
e vedere improvvisamente tutto funziona come previsto. : D
quando ci sono migliaia di funzioni da testare in una sola volta, phpunit è la strada da percorrere, un semplice test sta fallendo in quanto basato sul web.
Sto ancora usando il web semplice per test su piccola scala.
Ma entrambi sono buoni