我开始编写PHPUnit测试,我希望测试从开发人员机器以及我们的服务器运行.开发人员的计算机设置与服务器不同,甚至彼此不同.
要在这些不同的地方运行,似乎运行测试的人必须指出它在哪里运行.然后,测试可以查找正在运行的机器的正确配置.
我想象的是:
phpunit.bat -X johns_laptop unittest.php
或者在alpha服务器上:
phpunit -X alpha unittest.php
在测试中,我将能够获得"X"(或它是什么)参数的值,并且知道,例如,应用程序根目录的路径是什么.
它看起来不像命令行允许的那样 - 或者我错过了什么?
您可以使用PHPUnit的--bootstrap开关.
--bootstrapA "bootstrap" PHP file that is run before the tests.
然后,创建一个包含变量的bootstrap.php文件:
$port = 4445;
在测试中,您可以获取这些值:
global $port; $this->setPort($port);
然后运行:
phpunit --bootstrap boot.php MyTest.php
一种方法是检查$ argv和$ argc.就像是:
assertGreaterThan(2, $argc, 'No environment name passed'); $environment = $argv[2]; } }
然后你可以像这样调用你的phpunittest:
phpunit EnvironmentTest.php my-computer
将变量传递给引导程序文件以及测试文件的优雅方法是使用环境变量:
export MY_ENV_VAR="some value" phpunit all
然后,在PHP文件中,您可以像这样访问它:
getenv('MY_ENV_VAR')
资料来源:http://blog.lysender.com/2010/10/phpunit-passing-environment-variable-to-your-application/