2014-09-02 11 views
5

Gerade jetzt, wenn ich Setup ein neuer Test für meine Laravel Anwendung, es von der Basis erstreckt TestCase KlasseLaravel 4.2: Testfall Autoloading

class SomeTest extends TestCase 
{ 
} 

Ich möchte eine neue Basistestklasse erstellen namens AnotherTestCase, so kann ich Testfälle, dass die Aktien Setup/Teardown/Hilfsmethoden/etc erstellen ...

class SomeTest extends AnotherTestCase 
{ 
} 

Allerdings, wenn ich laufen

phpunit app/tests/SomeTest.php 

bekomme ich folgende Fehler

PHP Fatal error: Class 'AnotherTestCase' not found in /[...]/app/tests/SomeTest.php on line 3 

Dies trotz der Tatsache ist, habe ich eine Klasse an

definiert
#File: app/tests/AnotherTestCase.php 
<?php 
class AnotherTestCase extends TestCase 
{ 
} 

Dies ist verwirrend, da phpunit die TestCase Klasse automatisch geladen werden scheint.

Muss ich manuell in benutzerdefinierten Basistestklassen verlangen, oder gibt es eine Möglichkeit, phpunit über meine neue Basistestklasse zu informieren? Anders ausgedrückt, warum automatisch TestCase geladen wird phpunit, aber nicht geladen automatisch AnotherTestCase

Antwort

7

Sie können durch das Hinzufügen dieses zu Ihrem composer.json um diesen Fehler erhalten:

"autoload": { 
    "classmap": [ 
     "app/commands", 
     "app/controllers", 
     "app/models", 
     "app/filters", 
     "app/database/migrations", 
     "app/database/seeds", 
     "app/tests/TestCase.php", 
     "app/tests/AnotherTestCase.php" // <-- Add Me 
    ], 
// ... 

Danach werden Sie sicher ein composer dump-autoload tun. Getestet habe ich diese nur durch die folgende Klasse hinzu:

class AnotherTestCase extends TestCase {} 

Und geändert einer meiner bestehenden Tests dies als seine Eltern zu verwenden, statt. Ich glaube, der Eintrag in composer.json ist, wie Sie TestCase laden können.

+0

Ah, danke! Für zukünftige Leser, falls es aus der Frage nicht offensichtlich ist, wird Laravel mit app/tests/TestCase.php in seiner composer.json Datei ausgeliefert. Das ist der automatische Test für den zweiten Testfall. –

+0

kein Problem. froh, dass ich den Gefallen für all meine Magento-Fragen, die ich hatte, zurückgeben konnte :) –