2014-06-05 55 views
1

我有一個正常的目錄結構:PHPUnit的使用錯誤自動加載

- root 
    - vendor 
     - bin/phpunit 
    - tests 
    - bootstrap.php 

我composer.json:

{ 
    "name": "test/testing", 
    "minimum-stability": "dev", 
    "require": { 
     "phpunit/phpunit": "4.1.*@dev", 
     "phpunit/phpunit-mock-objects": "2.2.*@dev" 
    }, 
    "autoload": { 
     "classmap": ["tests/config.inc","test.inc"] 
    } 
} 

我bootstrap.php中:

<?php 

require_once 'vendor/autoload.php'; 

有bootstrap裏面的一些其他東西,這就是爲什麼我需要它, 但我在這裏刪除它,因爲它沒有任何關係與我的問題。

當我嘗試在根文件夾中運行的PHPUnit:

vendor/bin/phpunit --bootstrap tests/bootstrap.php tests/ItemsTest.php 

我得到的錯誤:

PHP Warning: require(xxxx/vendor/phpunit/phpunit-mock-objects/tests/../vendor/autoload.php): failed to open stream: No such file or directory in xxxxxxx/vendor/phpunit/phpunit-mock-objects/tests/bootstrap.php on line 4 

我不知道爲什麼PHPUnit的/自動加載器加載自舉:

phpunit-mock-objects/tests/bootstrap.php 

當然還有第4行:

require __DIR__ . '/../vendor/autoload.php'; 

不起作用。

回答

2

無論出於何種原因,PhpUnit都不理解引導路徑爲相對路徑。

更換引導路徑,如下所示,似乎這樣的伎倆:

vendor/bin/phpunit --bootstrap ./tests/bootstrap.php tests/ItemsTest.php 
+0

GREAT!非常感謝!我沒有看到所有的樹木之間......;) – michabbb