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' .php
estensione. Il GeneralStringFunctionsTest di cui sopra è in realtà un GeneralStringFunctionsTest.php
file.
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.xml
nella 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.xml
atests/GeneralStringFunctions
- Modifica della directory in
phpunit.xml
a./tests
- Spostare il
phpunit.xml
file nellatests
directory e quindi modificare la directory in modo che sia./
invece ditests
. - Aggiunta di un attributo suffisso al tag di directory in
phpunit.xml
per specificare "Test" come suffisso esplicito.
tests/GeneralStringFunctions/GeneralStringFunctionsTest
una cartella o un nome di file?