2016-09-26 60 views
-1

我在包工作Laravel 5和我PHPUnit測試與錯誤而失敗PHPUnit的:我的包類沒有找到

「類VENDORNAME \ PACKAGENAME \ MyPackage的未找到」

我仍然無法確定是什麼原因導致了這個錯誤,如果有人協助我會很高興。

這是我的結構是什麼樣子:

MyPackageTest:

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/" 
    } 
}, 

這是(可能是)在我的錯誤的來源。 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(); 
    } 
} 

這是我的phpunit.xml文件

<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> 

我也做了平常composer dump-autoload儀式得到這個工作,因爲它應該,但都無濟於事。

我還在上面的內容中更改了我的Laravel項目根目錄中的composer.json文件,但仍然無法使其工作。

+0

嘗試要求您的供應商自動加載的文件或文件phpunit.xml引導它。 – follio

+0

@Follio我已經做了'bootstrap =「vendor/autoload.php」' – youngbobby

+0

在app.php中添加require provider和別名 – Komal

回答

0

無法重現。工作得很好,我有以下composer.json:

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

和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

奇怪。我仍然有這個問題。 – youngbobby

+0

仔細檢查您使用的是正確的phpunit.xml –

+0

我剛剛在我的原始文章中包含了'phpunit.xml'配置。如果你能幫助我檢查我是否正常運行,會很高興。 – youngbobby