命名PHPunit配置文件phpunit.xml.dist或phpunit.xml

时间:2017-06-26 16:11:48

标签: php xml symfony unit-testing phpunit

有人可以向我解释一下使用名为phpunit.xml.distphpunit.xml的PHPunit配置文件有什么区别。

official documentation提到两个名字:

  

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

在加载没有phpunit.xml参数的配置时给予configuration更高的优先级。

  

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

我确实发现了一些问题(例如is this .xml.dist file really required to be used)与.dist文件通常用作模板(分发)的问题,应该将其复制到没有{{1}的版本结束以激活它们(例如.dist)。但这似乎不是PHPunit的情况,因为它拾取并运行dist文件。其他问题(Can I use phpunit.xml for credentials and phpunit.xml.dist for testsuites?)似乎涉及有关这两个文件的其他奇怪的使用方法。

在Symfony世界中,必须for reusable bundles包含.htaccess.dist文件,我想知道为什么不是phpunit.xml.dist文件。

  

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

所以,如果有人可以对此有所了解,我会很高兴; - )

2 个答案:

答案 0 :(得分:27)

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

回退背后的想法(当phpunit.xml.dist不存在时为phpunit.xml)是phpunit.xml.dist可以检入版本控制,phpunit.xml可以从版本控制中忽略。这允许开发人员使用自定义配置,而不会冒着将其意外检入版本控制的风险。

答案 1 :(得分:1)

文件.dist使用git进行版本控制,您通常不会使用版本phpunit.xml,因为它是您计算机的配置文件。

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

如果有phpunit.xml且phpunit.xml.dist phpunit需要phpunit.xml

phpunit.xml.dist它是一个标准文件,phpunit.xml它是一个自定义版本,并且没有版本化以避免发布个人数据