2009-10-28 14 views

risposta

10

Un esempio è più la pena di 1000 parole:

require_once 'PHPUnit/Framework.php'; 
require_once 'PHPUnit/TextUI/TestRunner.php'; 

class MyTestCase extends PHPUnit_Framework_TestCase { 

protected function setUp() { 
    parent::setUp(); 

} 

function testSimple() { 
    echo "horray !"; 
} 

protected function tearDown() { 

    parent::tearDown(); 
} 

static function main() { 

    $suite = new PHPUnit_Framework_TestSuite(__CLASS__); 
    PHPUnit_TextUI_TestRunner::run($suite); 
} 
} 

if (!defined('PHPUnit_MAIN_METHOD')) { 
    MyTestCase::main(); 
} 

la cosa fondamentale è:

  1. fornire un metodo principale nel vostro testcase

  2. test se il test viene eseguito direttamente (v ia php MyTestCase.php) o da phpunit stessa. se eseguito direttamente - basta avviare il testrunner.

sapere che è possibile eseguire il debug del testcase.

+0

O MIO DIO! SE SOLO ero incappato in questa risposta * anni fa quando ho iniziato a cercare !! Ho provato tante cose ma questo * funziona *! GRAZIE, utente anonimo !! Grazie!! –

+0

Sei genio. – fracz

2

Per gli altri che si stanno chiedendo se ci sono semplici istruzioni per la configurazione di Eclipse/Aptana con PHPUnit, ecco un sito web che ho trovato:

http://pkp.sfu.ca/wiki/index.php/Configure_Eclipse_for_PHPUnit

Quello che devi fare è sostanzialmente:

  1. Assicurati che le tue librerie PEAR si trovino nel percorso di inclusione del progetto. Fare clic con il tasto destro del mouse sul progetto nella finestra di navigazione e fare clic su Proprietà. Vedrai che c'è una sezione per PHP Include Path (o PHP Build Path in Aptana per la mia versione), aprila e aggiungi le tue librerie PEAR al tuo percorso include/build in modo che Eclipse sia a conoscenza di phpunit.
  2. Creare una configurazione di debug che esegua il file phpunit.php (potrebbe essere necessario aggiungere l'estensione .php al file se è in esecuzione con uno shebang, come nel caso di Mac OS X). Quindi con il file phpunit.php come script "Start Action", imposta "PHP Script Arguments" in modo che il file di test PHPUnit a cui sei interessato sia eseguito da phpunit.php. Aggiungi eventuali altri argomenti della riga di comando, per soddisfare le tue esigenze. per esempio. --verbose è una buona opzione. Puoi anche usare variabili come $ {resource_loc} per fare in modo che Eclipse lo sostituisca con il file corrente, per esempio.
  3. Esegui la tua configurazione di debug e goditi il ​​debugging!

Non è necessario modificare i file di test o altro, funzioneranno immediatamente.

2

Infine eseguo il debug parallelo alla riga di comando in eclissi 3.4. Debug ho eseguito come "pagina web PHP", il mio codice minimo

require_once 'PHPUnit/Framework.php'; 
require_once 'PHPUnit/TextUI/TestRunner.php'; 
class XTest extends PHPUnit_Framework_TestCase{ 
    public function testX(){ 
     //... 
    } 
} 
if (!defined('PHPUnit_MAIN_METHOD')) { 
    header('Content-type:text/plain; charset=utf-8'); 
    PHPUnit_TextUI_TestRunner::run(new PHPUnit_Framework_TestSuite('XTest')); 
} 
5

possiamo risolvere questo problema con il nostro plugin Eclipse MakeGood.

MakeGood fornisce un modo semplice per eseguire il debug dei test. Esegui un test solo in modalità debug. Per ulteriori informazioni, vedere the user guide.Metodo

Debugging a test

+0

Amo questo plugin. Dopo aver testato diverse opzioni, si è rivelato essere il migliore per l'interfaccia utente, facile installazione e la stabilità. –

0

Ho confermato impostando un punto di interruzione nel mio setup() dentro la mia unit test seguendo le istruzioni qui:

How to Debug Your PHP Unit Tests in Eclipse

Coinvolge copiare la directory/usr/bin/file di PHPUnit al progetto (in modo che sia accessibile tramite GUI di Eclipse), e aggiungere l'estensione .php ad esso. Da lì, Goto i tuoi file di configurazione di debug e impostare il PHP-file per quel file phpunit.php.

Il prossimo passo importante ha lavorato molto per me, perché sto utilizzando Yii, che mi ha fornito un file bootstrap.php. Metti qualcosa del genere nel tuo arg:

--bootstrap=${workspace_loc}/my-project/trunk/protected/tests/bootstrap.php ${workspace_loc}/my-project/trunk/protected/tests/unit/SomeClassToTest.php 
+0

il link è rotto a partire dal 2015/12/27 –

Problemi correlati