【问题标题】:How to override exported variables in phpunit?如何覆盖phpunit中导出的变量?
【发布时间】:2017-10-06 05:35:28
【问题描述】:

我知道我可以在我的 phpunit.xml 中 set an environment variable

<php>
    <env name="MY_VARIABLE" value="foo" />
</php>

所以这很好用

phpunit
// foo

但是,如果变量已在父 shell 中导出,则该值将被忽略。

export MY_VARIABLE=bar
phpunit
// bar

我需要为其他子进程导出这个值,但我真的不想为了运行测试而打开另一个 shell。如何配置 phpunit 以仅使用为测试环境定义的值?

【问题讨论】:

    标签: php phpunit


    【解决方案1】:

    默认情况下,phpunit.xml 中定义的环境变量会被 shell 环境覆盖。这种行为与命令行工具中通常使用环境变量的方式是一致的。设置环境变量我们通常期望它被传递给工具并被使用而不是配置的值。

    PHPUnit 6.3 中引入了新的force 属性,让我们可以禁用所选变量的这种行为:

    <env name="FOO" value="bar" force="true" />
    

    相关的github问题:

    【讨论】:

    猜你喜欢
    • 2022-01-27
    • 1970-01-01
    • 2020-12-19
    • 1970-01-01
    • 2018-03-12
    • 2021-05-07
    • 2014-06-07
    • 1970-01-01
    • 2015-08-23
    相关资源
    最近更新 更多