PHP 单元 - 未找到类 'PHPUnit_Framework_TestCase'

标签 php phpunit composer-php

我知道这个问题已经被问过一百次了,但我是 phpUnit 的新手,我不知道如何使用以前的答案来帮助我的案例

这是我的文件夹结构

    /src/MyDate.php
    /src/Autoload.php

    /tests/MyDateTest.php

    /vendor/phpunit/phpunit

自动加载文件中有这个

<?php

  spl_autoload_register(
    function($class) {
      static $classes = null;
      if ($classes === null) {
        $classes = array(
          'mydate' => '/MyDate.php'
        );
      }
      $cn = strtolower($class);
      if (isset($classes[$cn])) {
        require __DIR__ . $classes[$cn];
      }
    }  
  );

MyDateTest.php 有这个

<?php

class MyDateTest extends PHPUnit_Framework_TestCase
{
|
|
test be here

当我运行时

phpunit --bootstrap= src/autoload.php tests/MyDateTest.php

我收到此错误

Fatal error: Class 'PHPUnit_Framework_TestCase' not found in C:\wamp64\www\datechallange\tests\MyDateTest.php on line 3

我尝试了类似答案中的每个解决方案。尝试要求该文件包含该类,但其他类丢失了。我尝试修改自动加载文件以包含 phpunit 库,但要么我做错了什么,要么这不是正确的方法。我尝试修改 xml 文件,这样我就不需要使用 --bootstrap 但我有同样的错误。

我猜关键是修改 autoload.php 文件,但我不知道如何修改。

谢谢

最佳答案

您似乎遇到一个或两个问题。

  • 不使用 Composer ,这还将提供一个vendor/autoload.php 文件,该文件将自动提取通过composer.json 文件包含的任何文件。
  • 最新版本的 PHPunit (v>6.0) 不再使用长类名。不过,仍然受支持的 v5+ 确实如此。

安装 PHPunit 5.7 的推荐机制是:

composer require --dev phpunit/phpunit:^5.7

或者,它可以作为单个下载 phpunit.phar可以像任何其他 PHP 脚本一样运行。

关于PHP 单元 - 未找到类 'PHPUnit_Framework_TestCase',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42309176/

相关文章:

php - 适当的要求单元测试

php - Composer 插件自动加载依赖项

javascript - 如何将 href 链接到 TAB?

php - 如何设置 max_execution_time php-fpm docker 镜像?

PHPUnit 测试位于特征中的静态函数

php - 使用 PDT 和 MakeGood 让 PHPUnit 测试在 Eclipse 中工作

php - 使用 PHP GRPC Spanner Google Cloud 时出现错误

带有 composer 的 PHPUnit 自动加载器类

php - 为什么 PHP 需要显式引用 "$this"才能调用成员函数?

php - preg_match - 只能由数字、连字符 (-) 和空格组成