2017-05-30 56 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> 
相关问题