如何在phpunit.xml文件中引用环境变量?

如何在phpunit.xml文件中引用环境变量?,phpunit,environment-variables,Phpunit,Environment Variables,在我的phpunit.xml文件中,我有一个用于记录代码覆盖率报告的块,如下所示: <logging> <log type="coverage-html" target="./logs/coverage" ... </logging> <logging> <log type="coverage-html" target="$LOG_PATH" ... </logging> 根据: 在测试类中,将禁用备份和恢复全局变

在我的phpunit.xml文件中,我有一个用于记录代码覆盖率报告的块,如下所示:

<logging>
    <log type="coverage-html" target="./logs/coverage" ...
</logging>
<logging>
    <log type="coverage-html" target="$LOG_PATH" ...
</logging>

根据:


在测试类中,将禁用备份和恢复全局变量的(默认)行为。但是,请注意,将其放入设置方法中不会产生任何效果。希望有帮助

实际上,您的存储库中不应该有
phpunit.xml
。PHPUnit在执行时查找两个XML文件,即
PHPUnit.XML
PHPUnit.XML.dist
。如果找到它,它将始终优先排序
phpunit.xml
,否则它将返回到
phpunit.xml.dist
。从:

如果当前工作目录中存在phpunit.xml或phpunit.xml.dist(按该顺序),并且未使用--configuration,则将自动从该文件读取配置

因此,您应该在存储库中有
phpunit.xml.dist
作为运行测试的模板/样板设置。然后,如果每个开发人员希望添加他们的特定设置,他们可以从中创建自己的
phpunit.xml


另外,应该忽略存储库中的文件
phpunit.xml

您误解了这个问题。我说的是shell环境变量,不是PHP变量。我想在phpunit.xml文件中引用它们,而不是在实际的测试中引用它们。因此,答案是没有能力通过环境变量在配置xml文件中进行动态替换——您必须修改希望更改的每个项。希望这个功能存在!好问题,当用php编码时,我使用Phinx迁移系统进行DB迁移。它是通过JSON(不是xml)配置的,但您可以完全按照您在问题中提出的那样设置默认值并使用环境变量进行覆盖。希望PHP单元有这样的功能。不喜欢创建文件本地副本只是为了更改简单的事情,如基本源代码目录或测试文件目录——特别是至少有一个答案建议到处使用完全限定路径。
protected $backupGlobals = FALSE;