PHP单元 - 未找到类'PHPUnit_Framework_TestCase'

时间:2017-02-17 23:31:36

标签: 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文件,但我不确定如何。

由于

2 个答案:

答案 0 :(得分:4)

您似乎有两个问题中的一个或两个。

  • 不使用Composer,这也将提供vendor / autoload.php文件,该文件将自动提取通过composer.json文件包含的任何文件。
  • 最新版本的PHPunit(v&gt; 6.0)不再使用长类名称。尽管如此,仍然支持v5 +。

安装PHPunit 5.7的推荐机制是:

composer require --dev phpunit/phpunit:^5.7

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

答案 1 :(得分:0)

你应该在你的测试文件中试试这个。

use PHPUnit\Framework\TestCase;

class MyDateTest extends TestCase
{
}

这是最新的正确书写方式。