PHPunit配置文件phpunit.xml.dist和phpunit.xml命名有什么区别吗

问题描述 投票:0回答:3

有人可以向我解释一下使用名为

phpunit.xml.dist
phpunit.xml
的 PHPunit 配置文件有什么区别吗?

官方文档提到了这两个名字:

PHPUnit 的 XML 配置文件(附录 C)也可用于编写测试套件。示例 5.1 显示了一个最小的 phpunit.xml 文件,当递归遍历测试目录时,该文件将添加在 *Test.php 文件中找到的所有 *Test 类。

在加载没有

phpunit.xml
参数的配置时,给予
configuration
更高的优先级。

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

我确实发现了一些问题(例如,这个 .xml.dist 文件真的需要使用吗),这些问题与以下事实有关:

.dist
文件通常用作模板(分发版),应该将其复制到没有以
.dist
结尾来激活它们(例如
.htaccess.dist
)。但 PHPunit 的情况似乎并非如此,因为它也拾取并运行 dist 文件。其他问题(我可以使用 phpunit.xml 作为凭证,使用 phpunit.xml.dist 作为测试套件吗?)似乎处理了关于这两个文件的其他奇怪的使用想法。

在 Symfony 世界中,可重用包必须包含

phpunit.xml.dist
文件,我想知道为什么不使用
phpunit.xml
文件来代替。

测试套件不得包含 AllTests.php 脚本,但必须依赖于 phpunit.xml.dist 文件的存在。

因此,如果有人能够阐明这一点,我会很高兴;-)

php xml symfony unit-testing phpunit
3个回答
80
投票

如果当前工作目录中存在

phpunit.xml
phpunit.xml.dist
(按此顺序)并且未使用
--configuration
,则将自动从该文件读取配置。

回退背后的想法(当

phpunit.xml.dist
不存在时到
phpunit.xml
)是可以将
phpunit.xml.dist
签入版本控制,并且可以从版本控制中忽略
phpunit.xml
。这允许开发人员使用自定义配置,而无需冒意外将其签入版本控制的风险。


5
投票

文件 .dist 例如使用 git 进行版本控制,您通常不进行版本控制

phpunit.xml
,因为它是您机器的配置文件。

文件 .dist 通常是配置文件,不包含实际部署特定的参数

如果有 phpunit.xml 并且

phpunit.xml.dist
phpunit 需要
phpunit.xml

phpunit.xml.dist
这是一个标准文件, phpunit.xml 这是一个自定义文件,没有版本控制以避免发布个人数据


0
投票

但是实际中phpunit.xml什么时候使用呢? 它应该包含什么与 phpunit.xml.dist 不同的内容? 提供一些具体的例子(最好超过一个),而不是通常的通用定义。

© www.soinside.com 2019 - 2024. All rights reserved.