Я пытаюсь написать модульные тесты для приложения, в котором много изменений кода невозможно . Почти все файлы .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 через командную строку?
Мне также нужно запустить эти модульные тесты через Jenkins, и я не могу установить эти серверные переменные через ANT / build файл.
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>
, но он не работает. Есть ли какие-нибудь настройки, которые я могу сделать для этого? Спасибо!