Верх страницы
Обложка к записи Ошибка «Constant CONSTANT_NAME Already Defined» в PHPUnit
Время для прочтения: 0 мин. 11 сек.

Ошибка «Constant CONSTANT_NAME Already Defined» в PHPUnit

Если вы используете PHPUnit для запуска множества тестов, каждый из которых определяет константы, то вы можете столкнуться с ошибкой «Constant CONSTANT_NAME Already Defined» при попытке запустить их вместе.

Это происходит потому, что PHPUnit по умолчанию запускает все тесты в одном и том же процессе PHP, поэтому после запуска первого теста (и определения в нем константы) PHP будет жаловаться, что вы уже определили константу.

Для решения этой проблемы вам нужно указать PHPUnit не сохранять глобальное состояние между тестами и запускать каждый тест в отдельном процессе. Делается это очень просто:

use PHPUnit\Framework\TestCase;

class RecurringReportTest extends TestCase {

    protected $preserveGlobalState          = false;
    protected $runTestInSeparateProcess = true;

    protected function setUp() { }
    protected function tearDown() { }

    // Тут ваши тесты.
}

Это добавит немного накладных расходов, но, скорее всего, может оказаться единственным способом определить константы в ваших тестах.

Источник: Error Message: ‘Constant Already Defined’ When using PHPUnit

ВКонтакте
Одноклассники
Telegram
WhatsApp

Комментарии
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии