繁体   English   中英

PHP 单元 - 找不到类“PHPUnit_Framework_TestCase”

[英]PHP unit - Class 'PHPUnit_Framework_TestCase' not found

我知道这个问题已经被问了一百次了,但我是 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 脚本一样运行。

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

use PHPUnit\Framework\TestCase;

class MyDateTest extends TestCase
{
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM