k0p*_*kus 10 php phpunit environment-variables
在我的phpunit中我有这个配置:
<php>
<env name="ENVIRONMENT" value="test"/>
</php>
Run Code Online (Sandbox Code Playgroud)
我在错误的假设下工作,它总是将环境变量设置为值test
.然而,当系统已经具有变量集时,则它更喜欢已存在的值.
$ export ENVIRONMENT=GNARF
$ phpunit -c test/phpunit.xml
Run Code Online (Sandbox Code Playgroud)
所以在测试中,即使我预期,它的价值env('ENVIRONMENT')
也会"GNARF"
如此"test"
.
有没有办法让phpunit将env
设置视为默认值而不是它应该使用的确定值?
我也想避免以某种方式调用phpunit来获得正确的env变量.
所以虽然这有效:
ENVIRONMENT="test";./vendor/bin/phpunit -c tests/phpunit.xml
Run Code Online (Sandbox Code Playgroud)
phpunit.xml
如果可能的话,我宁愿在文件中配置它.
这种方式对我有用(用PHPUnit 6.5测试):
<phpunit bootstrap="vendor/autoload.php">
<testsuites>
<testsuite name="MyProject">
<directory>tests</directory>
</testsuite>
</testsuites>
<php>
<env name="API_KEY" value="fakeApiKey" force="true" />
</php>
</phpunit>
Run Code Online (Sandbox Code Playgroud)
这是拉取请求,他们添加了这个新功能(如果你感兴趣的话).
sebastianbergmann于2017年7月4日将其添加到PHPUnit 6.3里程碑中