在我的phpunit.xml文件中,我有一个用于记录代码覆盖率报告的块,如下所示:
<logging>
<log type="coverage-html" target="./logs/coverage" ...
</logging>
然而,我不喜欢使用硬编码字符串作为目标路径。我希望每个用户都能够通过环境变量指定他们的目标,这样他们就可以将日志放在他们喜欢的任何地方,而无需更改源控制文件。我想做这样的事情:
<logging>
<log type="coverage-html" target="$LOG_PATH" ...
</logging>
我在PHPUnit文档中看不到任何对这种替换的支持。有没有人知道如何做到这一点?
答案 0 :(得分:9)
实际上,您的存储库中不应该有phpunit.xml
。 PHPUnit在执行时查找两个XML文件,即phpunit.xml
和phpunit.xml.dist
。如果找到它,它将始终优先phpunit.xml
,否则它将回退到phpunit.xml.dist
。来自documentation:
如果当前工作目录中存在phpunit.xml或phpunit.xml.dist(按此顺序)并且未使用--configuration,则会自动从该文件中读取配置。
据说,您应该在存储库中使用phpunit.xml.dist
作为运行测试的模板/样板设置。然后,每个开发人员都可以创建自己的phpunit.xml
,如果他们希望添加他们的特定设置。
此外,您的存储库中应忽略文件phpunit.xml
。
答案 1 :(得分:0)
根据Herr Bergman:
protected $backupGlobals = FALSE;
在您的测试类中,将禁用备份和恢复全局变量的(默认)行为。但请注意,将其放入setUp方法将无效。希望有所帮助。