2016-09-26 5 views
-1

Ich arbeite an einem Paket für Laravel 5 und meine PHPUnit Tests scheitern mit FehlerPHPUnit: Mein Paket Klasse nicht

"Klasse Herstellername \ Package \ MyPackage nicht gefunden"

gefunden

Ich kann immer noch nicht erkennen, was für diesen Fehler verantwortlich ist und würde mich freuen, wenn jemand hilft. Diese

ist, was meine Struktur wie folgt aussieht:

src/ 
    ├─ MyPackage.php 
test/ 
    ├─ MyPackageTest.php 
composer.json 
composer.lock 

Composer.json

"psr-4": { 
    "VendorName\\PackageName\\": "src/" 
}, 
"autoload-dev": { 
    "psr-4": { 
     "VendorName\\PackageName\\Test\\": "tests/" 
    } 
}, 

Dies wird (möglicherweise), wo mein Fehler herkommt:

MyPackageTest. php

namespace VendorName\PackageName\Test; 

use PHPUnit\Framework\TestCase; 
use VendorName\PackageName\MyPackage; 

class MyPackageTest extends TestCase 
{ 
    protected $app; 

    public function setUp() 
    { 
     $this->app = new MyPackage(); 
    } 
} 

Hier ist meine phpunit.xml Datei

<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.5/phpunit.xsd" 
     backupGlobals="false" 
     backupStaticAttributes="false" 
     bootstrap="vendor/autoload.php" 
     colors="true" 
     convertErrorsToExceptions="true" 
     covertNoticesToExceptions="true" 
     convertWarningsToExceptions="true" 
     processIsolation="false" 
     stopOnFailure="false" 
     syntaxCheck="false" 
> 
     <testsuites> 
      <testsuite name="Interswitch Test Suite"> 
      <directory suffix=".php">./tests/</directory> 
      </testsuite> 
     </testsuites> 
    </phpunit> 

ich die üblichen Rituale composer dump-autoload getan haben, diese Funktion zu erhalten, wie es sollte, aber alles ohne Erfolg.

Ich änderte auch die composer.json Datei im Stamm meines Laravel-Projekts mit dem Inhalt oben, aber ich konnte immer noch nicht zum Funktionieren bringen.

+0

try Ihren Anbieter automatisch geladen Datei oder Bootstrap es in phpunit.xml Datei benötigen. – follio

+0

@Follio Ich habe das bereits 'bootstrap =" vendor/autoload.php "' – youngbobby

+0

Hinzufügen erfordern Provider und Aliase in app.php – Komal

Antwort

0

Konnte nicht reproduzieren. Funktioniert sehr gut für mich mit folgenden composer.json:

{ 
    "require": { 
     "phpunit/phpunit": "^5.5" 
    }, 
    "autoload" : { 
     "psr-4": { 
      "VendorName\\PackageName\\": "src/" 
     } 
    } 
} 

und phpunit.xml:

<phpunit 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.5/phpunit.xsd" 
    bootstrap="./vendor/autoload.php"> 

    <testsuites> 
     <testsuite name="Unit"> 
      <directory suffix="Test.php">test</directory> 
     </testsuite> 
    </testsuites> 
</phpunit> 
+0

Seltsam. Ich habe immer noch dieses Problem. – youngbobby

+0

Überprüfen Sie, ob Sie die richtige phpunit.xml verwenden –

+0

Ich habe gerade 'phpunit.xml' Konfiguration in meinem ursprünglichen Beitrag enthalten. Würde mich freuen, wenn Sie mir helfen könnten zu überprüfen, ob ich auf Kurs bin oder nicht. – youngbobby

Verwandte Themen