Мы используем PHPUnit в нашем проекте и используем phpunit.xml
для обеспечения таких вещей, как backupGlobals
отключен.
Чтобы еще больше убедиться, что путь включения установлен и автозагрузка активна, мы также каскадируем наши тестовые загрузочные файлы. Другими словами, каждый тест и все наборы тестов имеют require_once (__ DIR__. '/../Bootstrap.php');
вверху, вплоть до уровня базовой папки, где он очевидно, читается require_once (__ DIR__. ' /bootstrap.php');
, и находится сам файл начальной загрузки.
По сути, наши тесты автономны. Вы можете вызвать любой AllTests.php
в любой папке и любой * Test.php
отдельно, и они будут работать с правильной конфигурацией.
Кроме номера. ' Подождите минутку. '
Это верно только в том случае, если мы либо заставим наших разработчиков использовать phpunit --configuration = path / to / phpunit.xml
, либо они будут в папка с phpunit.xml
(так что PHPUnit вытаскивает его из текущего рабочего каталога при запуске).
Иногда это чрезвычайно затрудняет определение того, почему тесты на одной машине разработчика ломаются и почему они работают на другом. Достаточно забыть, что бутстрап - это , а не единственное, что нам нужно, чтобы иметь ту же тестовую среду. Имейте в виду, что, поскольку вы не могли забыть начальную загрузку, если бы вы пытались, потому что она находится в самих тестах, забывая другие настройки, особенно обычно необязательные, подобные этим (если вы находитесь в папке с phpunit.xml
, он загружается автоматически), это просто.
На самом деле - это случалось несколько раз.
Могу ли я указать, какой phpunit.xml
использовать в запускаемом тестовом файле , например, в нашем широко распространенном файле начальной загрузки , вместо того, чтобы заранее передавать его в PHPUnit , из файла начальной загрузки, если кто-то знает способ.
(Если безрезультатно, практический ответ, который я пойду, вероятно, будет заключаться в копировании phpunit.xml
во все подпапки. I ' я бы хотел избежать этого решения, поскольку оно создает избыточные копии, и если мы когда-нибудь решим изменить настройку ... да, ой!)