我试图为不可能进行大量代码更改的应用程序编写单元测试。代码库中几乎所有的.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: 通过命令行运行phpunit测试时,是否可以设置$ _SERVER变量?
我还必须通过Jenkins运行这些单元测试,但无法通过ANT / build文件设置这些服务器变量。
Ques2:
是否可以通过Jenkins中的ant构建文件或通过运行任何Shell脚本来设置这些变量,然后再通过Jenkins执行phpunit测试?
我尝试通过外壳脚本导出服务器变量
export DOCUMENT_ROOT=/server/path-to-root-dir
然后在Jenkins的build.xml中调用该脚本
但它不起作用。有什么我可以做的设置吗?谢谢!