3

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

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

但是,我不喜欢对目标路径使用硬编码字符串。我希望每个用户都能够通过环境变量指定他们的目标,这样他们就可以将日志放在他们喜欢的任何地方,而无需更改源代码控制的文件。我想做这样的事情:

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

我在 PHPUnit 文档中没有看到对这种替换的任何支持。有谁知道如何做到这一点?

4

2 回答 2

11

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

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

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

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

于 2013-03-05T11:24:45.020 回答
0

根据伯格曼先生的说法:

protected $backupGlobals = FALSE;

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

于 2013-02-28T15:47:51.897 回答