2016-05-13 55 views
4

文件夾結構PHPUnit的類未發現

/app/lib/Helper.php

/tests/HelperTest.php

/vendor/autoload.php

作曲家。 json

{ 
    "require-dev": { 
     "phpunit/phpunit": "*" 
    }, 

    "autoload": { 
     "psr-4": { 
      "Datapark\\LPS\\": "app/" 
     } 
    }, 

    "autoload-dev": { 
     "psr-4": { 
      "Datapark\\LPS\\Tests\\": "tests/" 
      } 
    }, 
} 

Helper.php

<?php 

namespace lib; 

class Helper 
{ 
    public function array_get($array, $key, $default = null) 
    { 
     // code 
    } 
} 

HelperTest.php

<?php 

use lib\Helper; 

class HelperTest extends \PHPUnit_Framework_TestCase 
{ 
    public function test_array_get() 
    { 
     $helper = new Helper(); 

    } 
} 

命令I服務器 [Debian的8/PHP7]

phpunit --bootstrap vendor/autoload.php tests

錯誤我上運行通用電器牛逼

1) HelperTest::test_array_get

Error: Class 'lib\Helper' not found

的lib \助手通過命名空間加載和我的IDE(PhpStorm)也承認它。已經在幾個小時內掙扎了,並沒有得到它的工作。

回答

5

你自動加載的配置說:

 "Datapark\\LPS\\": "app/" 

這意味着類似:文件app/lib/Helper.php

classes in app directory have Datapark\LPS\ namespace prefix.

因此,作爲一個例子類應該有命名空間Datapark\LPS\lib。因此,你需要改變空間聲明中Helper類:

namespace Datapark\LPS\lib; 

而且有類似的問題,爲您的測試文件夾。

+0

它的作品!謝謝 –

2

我注意到,當我運行:

$ vendor/bin/phpunit tests 

然後我的測試開始工作