2016-05-05 17 views
5

Also schreibe ich ein grundlegendes Laravel-Paket und ich bin anscheinend auf ein weiteres Problem gestoßen, dieses Mal mit Tests.Testen eines Laravel-Pakets

Das Paket in Entwicklung befindet sich derzeit in einem Ordner packages im Stammverzeichnis des Projekts. Ich habe die composer.json Datei des Pakets modifiziert, um die Abhängigkeiten I

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

Allerdings müssen schließen, wenn ich phpunit tests im Paketordner versuchen laufen (die einen Ordner tests zusammen mit einer Probe-Test genannt enthält), erhalte ich die folgende Fehlermeldung:

PHP Fatal error: Class 'Illuminate \ Foundation \ Testing \ Testcase' nicht in /workspace/laravel/packages/sample/http-request/tests/HttpRequestTest.php auf Linie gefunden 8

Die Testdatei ist nur der automatisch generierte Stub:

<?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); 
    } 
} 

Irgendeine Idee, warum das nicht funktioniert? Die App-Tests laufen ohne Probleme, aber die App selbst hat keine anderen Abhängigkeiten als das, was in der Box ist.

SOLUTION

Verwaltet es durch die Verlängerung der PHPUnit_Framework_TestCase unabhängig funktioniert:

class HttpRequestTest extends PHPUnit_Framework_TestCase 

jedoch mag es ausgeführt wird:

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

funktioniert auch, so nahm ich es als Antwort. Diese

+0

Danke, dass Sie hier eine Lösung hinzufügen möchten. In Zukunft fügen Sie bitte als Antwort unterhalb der Frage hinzu - wir mögen hier eine saubere Trennung zwischen Q & A. Prost! – halfer

Antwort

5

funktioniert für mich:

class HttpRequestTest extends TestCase 

Und Lauftest mit:

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

Nein, findet immer noch nichts :(Wieder ist es in einem Packages/...-Ordner, der wiederum seinen eigenen Lieferantenordner mit Dev-Abhängigkeiten hat, nicht im Stamm der App, wo es auch für mich funktioniert – overburn

+1

Ich habe den Beitrag aktualisiert, ich führe Paket-Tests wie folgt aus und es funktioniert. –

+1

Ah toll. Es funktioniert. Allerdings verwendet es die Abhängigkeiten der Anwendung, die mit TravisCI nicht machbar wären. Ich habe einen anderen Weg gefunden - Ich benutze nur PHPUnit's gebündeltes TestCase. – overburn

1

(Geschrieben im Namen der OP als Antwort).

Verwaltet es durch die Verlängerung der PHPUnit_Framework_TestCase unabhängig funktioniert:

class HttpRequestTest extends PHPUnit_Framework_TestCase 

jedoch mag es ausgeführt wird:

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

funktioniert auch, so nahm ich es als eine Antwort.