I am trying to write unit tests for an application where a lot of code changes is not possible. Almost all the .php files in the code base uses some $_SERVER[''] variables like
require_once $_SERVER['DOCUMENT_ROOT'] . '/mainApi.php';
So now when I have to write and run PHPUnit test cases I have to somehow set these variables. At present I am setting these variables in the user environment and then doing
$_SERVER['DOCUMENT_ROOT'] = getenv('DOCUMENT_ROOT');
require_once $_SERVER['DOCUMENT_ROOT'] . '/mainApi.php';
Getting the server variables like this is working fine. I run my tests through commandline as $ phpunit test.php.
Ques1: Is it possible to set the $_SERVER variables while running the phpunit tests through commandline?
I also have to run these unit tests through Jenkins and I am not able to set these server variable through ANT/build file.
Ques2: Is it possible to set these variable through ant build file in Jenkins or by running any shell script before executing the phpunit tests through Jenkins?
I tried exporting the server variable through a shell script
export DOCUMENT_ROOT=/server/path-to-root-dir
and calling that script in the build.xml in Jenkins
<export name="setEnv" description="set server var">
<exec executable="sh">
<arg value = "sumit.sh" />
</exec>
</target>
but its not working. Is there any setting that I can do for this? Thanks!