Автозагрузчик Composer не может найти PHPUnit при запуске тестов - PullRequest
0 голосов
/ 15 февраля 2019

Я обновляю устаревший проект PHP для использования composer и внедряю 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.выполнение из визуального кода студии дает тот же результат.Я прочитал, реализовал проблему, как описано в Автозагрузка классов в PHPUnit с использованием Composer и autoload.php

Контрольный пример

<?php

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

        $user = new Bruger;
    }
}

1 Ответ

0 голосов
/ 15 февраля 2019

PHPUnit_Framework_TestCase не существует в PHPUnit версии 8, которая является минимально указанной версией.Начиная с (я думаю) PHPUnit версии 5, он использует пространства имен, поэтому ваш контрольный пример должен называться \PHPUnit\Framework\TestCase.

. Вы можете понизить требования PHPUnit до более старой версии или (предпочтительно) обновить свои тесты довстретить новый стиль именования.

...