Я пытаюсь написать модульные тесты для приложения, в котором много изменений кода невозможно.Почти все .php-файлы в базе кода используют некоторые переменные $ _SERVER [''], такие как
require_once $_SERVER['DOCUMENT_ROOT'] . '/mainApi.php';
Так что теперь, когда мне нужно написать и запустить тестовые сценарии PHPUnit, мне нужно как-то установить эти переменные.В настоящее время я устанавливаю эти переменные в пользовательской среде, а затем выполняю
$_SERVER['DOCUMENT_ROOT'] = getenv('DOCUMENT_ROOT');
require_once $_SERVER['DOCUMENT_ROOT'] . '/mainApi.php';
Получение серверных переменных, подобных этой, работает нормально.Я запускаю свои тесты через командную строку как $ phpunit test.php
.
Ques1: Можно ли установить переменные $ _SERVER при выполнении тестов phpunit через командную строку?
Мне также нужно запустить эти модульные тесты через Дженкинса, и яне удалось установить эти переменные сервера через ANT / файл сборки.
Ques2: Можно ли установить эти переменные с помощью файла сборки ant в Jenkins или с помощью любого сценария оболочки перед выполнением тестов phpunit через Jenkins?
Я попытался экспортироватьпеременная сервера через сценарий оболочки
export DOCUMENT_ROOT=/server/path-to-root-dir
и вызов этого сценария в build.xml в Jenkins
<export name="setEnv" description="set server var">
<exec executable="sh">
<arg value = "sumit.sh" />
</exec>
</target>
, но он не работает.Есть ли какие-либо настройки, которые я могу сделать для этого?Спасибо!