Раздел вопрос-ответ PHP Fatal error: Class 'PHPUnit_Extensions_Database_TestCase' not found при использовании composer

Я через composer ставлю phpunit/dbunit. При запуске CI тестов phpunit на codeship сразу же получаю ошибку:

PHP Fatal error:  Class 'PHPUnit_Extensions_Database_TestCase' not found in home/rof/src/bitbucket.org/user/project/tests/DatabaseTestCase.php on line 4

Содержимое composer.json:

{
	"require": {
		"php": ">=5.6.0",
		"videlalvaro/php-amqplib": "2.5.*",
		"composer/installers": "~1.0"
	},
	"require-dev": {
		"phpunit/phpunit": "5.1.*",
		"phpunit/dbunit": ">=1.2"
	}
}

Setup Commands:

# Set php version through phpenv. 5.3, 5.4, 5.5 & 5.6 available
phpenv local 5.6
# Install extensions through Pecl
yes yes | pecl install memcache
# Install dependencies through Composer
composer install --prefer-source --no-interaction
./bin/provision/db

Configure Test Pipelines:

phpunit --bootstrap=./tests/bootstrap.php tests/

Класс PHPUnit_Extensions_Database_TestCase не найден при установленном через composer phpunit, dbunit

При этом на виртуальной машине при поставленном через pecl dbunit/phpunit всё ок.

share

1 ответ

Разобрался.

Нужно указывать полный путь до phpunit из папки vendor, которая появляется после установки софта из composer.json.

vendor/bin/phpunit --bootstrap=./tests/bootstrap.php tests/

Т.к. голый вызов phpunit инициирует вызов уже предустановленного phpunit. Нужно либо прописать новый симлинк на /usr/bin/phpunit с vendor/bin/phpunit, либо указывать полный путь до нужного phpunit.

Тогда ошибки с нахождением класса PHPUnit_Extensions_Database_TestCase не возникает. Физически phpunit/dbunit установленные через composer находятся в корне проекта в папке vendor:

  • vendor/bin/phpunit
  • vendor/bin/dbunit
Добавить комментарий
    как минимум 5 символов

    icon Вход в систему

    зарегистрироваться
    НОВЫЕ ПОЛЬЗОВАТЕЛИ