PHP致命错误:找不到接口'PHPUnit \ Framework \ TestListener'

时间:2017-05-30 15:16:51

标签: testing phpunit listener cakephp-3.0 fatal-error

我正在使用Vagrant VM上的 CakePHP 3.x 项目。我的项目有一个控制器测试。 Project使用 composer 进行设置,phpunit安装在 vendor 目录中。

运行./vendor/bin/phpunit测试会引发以下错误:

[vagrant@devenv-lamp ~/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

我尝试为单个Controller运行PHPUnit - 结果相同......

[vagrant@devenv-lamp ~/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非常陌生,即使没有起步,我也遇到了困难。任何帮助将非常感谢。

1 个答案:

答案 0 :(得分:0)

看起来自动加载设置不正确。

phpunit.xml中,您需要指定引导程序文件。这可以是基于您的项目的自定义脚本,或者在某些情况下,它可以像使用composer的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>