2016-05-05 27 views
5

Quindi, sto scrivendo un pacchetto Laravel di base e mi sembra di essere incappato in un altro problema, questa volta con i test.Testare un pacchetto Laravel

Il pacchetto in sviluppo è attualmente in una cartella packages nella radice del progetto. Ho modificato il file composer.json del pacchetto per includere le dipendenze di cui ho bisogno

"require-dev": { 
    "phpunit/phpunit": "~4.0", 
    "laravel/laravel": "dev-develop" 
} 

Tuttavia, ogni volta che provo in esecuzione phpunit tests nella cartella del pacchetto (che contiene una cartella denominata tests insieme a un test di esempio), ho la seguente errore:

PHP Fatal error: Class 'Illuminate \ Fondazione \ Testing \ TestCase' non trovato in /workspace/laravel/packages/sample/http-request/tests/HttpRequestTest.php on line 8

Il il file di test è solo lo stub generato automaticamente:

<?php 

use Illuminate\Foundation\Testing\WithoutMiddleware; 
use Illuminate\Foundation\Testing\DatabaseMigrations; 
use Illuminate\Foundation\Testing\DatabaseTransactions; 

class HttpRequestTest extends Illuminate\Foundation\Testing\TestCase 
{ 
    /** 
    * A basic test example. 
    * 
    * @return void 
    */ 
    public function testExample() 
    { 
     $this->assertTrue(true); 
    } 
} 

Qualche idea sul perché questo non funziona? I test delle app vengono eseguiti senza intoppi, ma l'app stessa non ha dipendenze diverse da quelle contenute nella confezione.

SOLUZIONE

riuscito a farlo funzionare indipendentemente estendendo il PHPUnit_Framework_TestCase:

class HttpRequestTest extends PHPUnit_Framework_TestCase 

Tuttavia, eseguendolo piace:

vendor/bin/phpunit packages/yourname/package-name/ 

funziona bene, per cui l'ho preso come risposta

+0

Grazie per aver voluto aggiungere una soluzione qui. In futuro, aggiungilo come risposta sotto la domanda: ci piace una netta separazione tra domande e risposte qui. Saluti! – halfer

risposta

5

questo funziona per me:

class HttpRequestTest extends TestCase 

E in esecuzione di test con:

vendor/bin/phpunit packages/yourname/package-name/ 
+0

No, ancora non trova nulla :(Ancora una volta, si trova in una cartella pacchetti/..., che a sua volta ha la propria cartella del fornitore con dipendenze di sviluppo, non nella radice dell'app, dove funziona anche per me – overburn

+1

Ho aggiornato il post, sto eseguendo test dei pacchetti come questo e funziona –

+1

Ah fantastico Funziona, ma usa le dipendenze dell'applicazione, che non sarebbe fattibile con dire TravisCI. Io uso solo TestCase in bundle di PHPUnit. – overburn

1

(Pubblicato per conto del PO come risposta).

riuscito a farlo funzionare indipendentemente estendendo il PHPUnit_Framework_TestCase:

class HttpRequestTest extends PHPUnit_Framework_TestCase 

Tuttavia, eseguendolo come:

vendor/bin/phpunit packages/yourname/package-name/ 

funziona bene, così ho preso come una risposta.