运行测试时,Composer自动加载器找不到PHPUnit

时间:2019-02-15 19:41:47

标签: php composer-php phpunit

我正在更新一个旧的PHP项目以使用作曲家,并实现了PHPUnit。不幸的是,我遇到了一些问题。当运行PHPUnit

  

致命错误:找不到类“ PHPUnit_Framework_TestCase”

composer.json

{
    "require": {
        "phpunit/phpunit": "^8.0",
        "phpoffice/phpspreadsheet": "^1.6"
    },
    "autoload": {

        "psr-4": {"Biz\\": "src/php/Classes"}
    }
}

phpunit.xml

<?xml version="1.0" encoding="UTF-8"?>
<phpunit
         bootstrap="vendor/autoload.php"
         verbose="true">
  <testsuites>
  <testsuite name="Random Tests">
    <directory>./src/test/random/*Test.php files</directory>
  </testsuite>
</testsuites>
</phpunit>

目录结构

directory structure

正在执行的命令行

$ ./vendor/bin/phpunit ./src/test/random/SampleTest.php

我正在使用git-bash运行它。从Visual Studio代码执行可以得到相同的结果。我已阅读并实施了Autoloading classes in PHPUnit using Composer and autoload.php

中所述的问题

测试用例

<?php

class SampleTest extends \PHPUnit_Framework_TestCase {
    public function testUserClassInheritance(){
        global $mysqlConn;
        echo "testing";
        $this->assertTrue(true);

        $user = new Bruger;
    }
}

1 个答案:

答案 0 :(得分:2)

PHPUnit_Framework_TestCase在PHPUnit版本8(这是您的最低指定版本)中不存在。从(我认为)PHPUnit版本5开始,它正在使用名称空间,因此您的测试用例应命名为\PHPUnit\Framework\TestCase

您可以将PHPUnit要求降级为较旧的版本,或者(最好)更新测试以符合新的命名方式。