Если вы используете PHPUnit для запуска множества тестов, каждый из которых определяет константы, то вы можете столкнуться с ошибкой «Constant CONSTANT_NAME Already Defined» при попытке запустить их вместе.
Это происходит потому, что PHPUnit по умолчанию запускает все тесты в одном и том же процессе PHP, поэтому после запуска первого теста (и определения в нем константы) PHP будет жаловаться, что вы уже определили константу.
Для решения этой проблемы вам нужно указать PHPUnit не сохранять глобальное состояние между тестами и запускать каждый тест в отдельном процессе. Делается это очень просто:
use PHPUnitFrameworkTestCase;
class RecurringReportTest extends TestCase {
protected $preserveGlobalState = false;
protected $runTestInSeparateProcess = true;
protected function setUp() { }
protected function tearDown() { }
// Тут ваши тесты.
}
Это добавит немного накладных расходов, но, скорее всего, может оказаться единственным способом определить константы в ваших тестах.
Источник: Error Message: ‘Constant Already Defined’ When using PHPUnit
Источник: https://www.kobzarev.com/programming/constant-already-defined-phpunit/