Я пытаюсь написать модульные тесты для приложения, где много изменений кода невозможно. Почти все .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 или запустить любую оболочку script перед выполнением тестов phpunit через Jenkins?
Я попытался экспортировать переменную сервера через оболочку script
export DOCUMENT_ROOT=/server/path-to-root-dir
и называя это script в файле build.xml в Jenkins
<export name="setEnv" description="set server var">
<exec executable="sh">
<arg value = "sumit.sh" />
</exec>
</target>
но не работает. Есть ли какие-то настройки, которые я могу сделать для этого? Спасибо!