Ошибка «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