Il problema
Per migliorare la mia qualità del codice, ho deciso di provare a imparare a testare il mio codice utilizzando Unit Testing invece delle mie soluzioni di test mediocri.
Ho deciso di installare PHPUnit utilizzando il compositore per una libreria personale che mi permette di ottenere funzioni di database comuni. All'inizio non avevo un file di configurazione per PHPUnit e quando ho eseguito comandi come:
$ phpunit tests/GeneralStringFunctions/GeneralStringFunctionsTest
Tieni presente che questo è un comando da terminale, quindi non ho incluso l' .phpestensione. Il GeneralStringFunctionsTest di cui sopra è in realtà un GeneralStringFunctionsTest.phpfile.
L'output è quello che mi aspettavo:
Tempo: 31 ms, Memoria: 2.75Mb
OK (1 test, 1 affermazione)
Ho quindi provato a utilizzare un file di configurazione per caricare automaticamente la suite di test invece di dover digitare manualmente il file ogni volta. Ho creato un file chiamato phpunit.xmlnella mia directory principale e ho inserito quanto segue nel file: http://pastebin.com/0j0L4WBD :
<?xml version = "1.0" encoding="UTF-8" ?>
<phpunit>
<testsuites>
<testsuite name="Tests">
<directory>tests</directory>
</testsuite>
</testsuites>
</phpunit>
Ora, quando eseguo il comando:
phpunit
Ottengo il seguente output:
PHPUnit 4.5.0 di Sebastian Bergmann e collaboratori.
Configurazione letta da /Users/muyiwa/Projects/DatabaseHelper/phpunit.xml
Tempo: 16 ms, Memoria: 1.50Mb
Nessun test eseguito!
Nel caso sia utile, la struttura della mia directory è la seguente:
src - Directory di primo livello (con tutto il mio codice sorgente)
test - Directory di primo livello (con tutti i miei test, strutturata come la mia cartella src )
fornitore - Compositore file di terze parti
Ho anche il json del compositore e il file di blocco, nonché il file xml phpunit nel livello superiore come file.
Cose che ho provato
- Modifica della directory in
phpunit.xmlatests/GeneralStringFunctions - Modifica della directory in
phpunit.xmla./tests - Spostare il
phpunit.xmlfile nellatestsdirectory e quindi modificare la directory in modo che sia./invece ditests. - Aggiunta di un attributo suffisso al tag di directory in
phpunit.xmlper specificare "Test" come suffisso esplicito.
tests/GeneralStringFunctions/GeneralStringFunctionsTestuna cartella o un nome di file?