2017-05-30 68 views
0

我正在做一個CakePHP 3.x項目在Vagrant虛擬機上。我的項目有一個控制器測試。項目設置使用作曲家和phpunit安裝在供應商目錄。PHP致命錯誤:未找到接口'PHPUnit Framework TestListener'

運行./vendor/bin/phpunit測試引發以下錯誤:

[[email protected] ~/www]$ ./vendor/bin/phpunit Tests 
PHP Fatal error: Interface 'PHPUnit\Framework\TestListener' not found in /vagrant/vendor/cakephp/cakephp/src/TestSuite/Fixture/FixtureInjector.php on line 30 

Fatal error: Interface 'PHPUnit\Framework\TestListener' not found in /vagrant/vendor/cakephp/cakephp/src/TestSuite/Fixture/FixtureInjector.php on line 30 

我試着運行了單個控制器的PHPUnit以及 - 具有相同的結果...

[[email protected] ~/www]$ ./vendor/bin/phpunit tests/TestCase/Controller/QuestionsControllerTest.php 
PHP Fatal error: Interface 'PHPUnit\Framework\TestListener' not found in /vagrant/vendor/cakephp/cakephp/src/TestSuite/Fixture/FixtureInjector.php on line 30 

Fatal error: Interface 'PHPUnit\Framework\TestListener' not found in /vagrant/vendor/cakephp/cakephp/src/TestSuite/Fixture/FixtureInjector.php on line 30 

我很新的即使沒有起飛,PHPUnit也會跑進牆壁。任何幫助在這裏將不勝感激。

回答

0

它看起來像自動加載沒有正確設置。

在您的phpunit.xml中,您需要指定引導程序文件。這可以是基於您的項目的自定義腳本,或者在某些情況下,就像使用作曲家的autoload.php一樣簡單:

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