2012-01-18 11 views
5

Sono un nuovo utente di PHPUnit e sto convertendo i test esistenti (asseriti) nel framework PHPUnit per fornire un ambiente di test migliore e copertura del codice. Tuttavia, ho bisogno di sapere come provare a far funzionare PHPUnit con la nostra struttura di codice di test.Configurazione nomi file per PHPUnit

nostri directory di progetto sono simili a quanto segue:/
      CREDIT_CARD.class
Application1 - Classe convenzione di denominazione per CREDIT_CARD
      CREDIT_CARD.class.test - test automatizzati per CREDIT_CARD.class
      File.php - File di applicazione
      File.php.test - Auto test montate per file.php
      File2.php
      File2.php.test - test automatizzati per File2.php

Application2/
      ANOTHER_CLASS.class
      ANOTHER_CLASS .class.test
      DifferentFile.php - File di applicazione
      DifferentFile.php.test - test automatizzati per file.php

lib/
      util/
            SHARED_CLASS.class
            SHARED_CLASS. class.test
      VISUAL/
            VISUAL_TOOL.class
            VISUAL_TOOL.class.test

ho bisogno di sapere come configurare i test PHPUnit in modo da poter eseguire i test in lib/UTIL/. test (che carica il file di classe utilizzando il metodo setUp()) quindi lib/VC/. test, seguito (se eseguito con successo) dai test Application1 e Application2. Ho visto menzionare un file PHPUnit_xml e un file bootstrap, ma non riesco a trovare un modello di riferimento per vedere se questi sono ciò di cui ho bisogno. Qualsiasi aiuto sarebbe apprezzato.

So che la documentazione si riferisce a un'aggiunta di test.php ai nomi di file, ma spero di non dover cambiare la nostra struttura e le convenzioni di denominazione in quanto mi piacerebbe essere in grado di eseguire un mix dei file fino a quando non sono tutti convertiti nel framework PHPUnit.Cambiare i nomi causerà un cambio di procedura nella nostra azienda e una formazione per gli sviluppatori, che sto cercando di evitare.

Grazie in anticipo per qualsiasi assistenza.

+0

Quindi "Filename.class.test' contiene una classe che estende PHPUnit_Framework_TestCase? Ho capito bene? – edorian

+0

Sì. Classe TEST_SOME_CLASS estende PHPUnit_Framework_TestCase { protetta funzione setup() { se require_once (substr (__ FILE__, 0, -5)) (class_exists ('SOME_CLASS')!); // striscia '.test' estensione } \t testConstants funzione pubblica() { \t \t $ this-> assertEquals (SOME_CLASS :: TYPE_1, 1); $ this-> assertEquals (SOME_CLASS :: TYPE_2, 2); \t} } –

risposta

7

Quindi i file denominati Foo.class.test anziché il valore predefinito di PHPUnit FooTest.php?

Questo non dovrebbe essere un grosso problema dato che PHPUnit consente di configurare quali suffissi di file devono essere trattati come "test". Il Test.php è solo l'impostazione predefinita.

Date un'occhiata al xml config part of the docs regard test organisation

Quello che vuoi è:

<testsuites> 
    <testsuite name="Our new shiny phpunit test Suite"> 
     <directory suffix=".test">./sourceFolder</directory> 
    </testsuite> 
    </testsuites> 

PHPUnit sarà quindi eseguire la scansione attraverso la cartella di origine inclusi tutti i file che terminano in .class.test e lasciando gli altri file come è.

+0

Poiché esistono alcuni file di test non di classe, potrebbe essere necessario "suffix =". Test "". –

+0

Ah grazie @David. Buon punto – edorian

+0

Grazie per i suggerimenti. Qualche possibilità di ottenere un file di esempio con alcuni di questi suggerimenti, poiché ho file diversi e non ho molta esperienza con PHPUnit? Sto guardando il riferimento, e sono principalmente alla ricerca di un file di base per iniziare a tentativi ed errori e verificare le intese con il documento. –

Problemi correlati