【问题标题】:PHP Fatal error: Interface 'PHPUnit\Framework\TestListener' not foundPHP 致命错误:未找到接口“PHPUnit\Framework\TestListener”
【发布时间】:2017-05-30 15:16:50
【问题描述】:

我正在 Vagrant VM 上开发 CakePHP 3.x 项目。我的项目有一个控制器测试。项目是使用 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

我也尝试为单个控制器运行 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 很陌生,即使没有起飞,我也会撞墙。这里的任何帮助将不胜感激。

【问题讨论】:

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


    【解决方案1】:

    似乎自动加载设置不正确。

    在您的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>
    

    【讨论】:

      猜你喜欢
      • 2018-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      • 2013-09-27
      • 1970-01-01
      • 2019-10-09
      相关资源
      最近更新 更多