为了让功能测试在Symfony 4中工作,我必须添加一个<env .../>
标签来指定数据库凭据phpunit.xml.dist
。
我觉得尴尬的是,phpunit.xml.dist
当然致力于VCS。这意味着数据库凭据(通常(至少如果不使用 Docker)特定于主机,将提交到 VCS。(另外:环境设置可能包含敏感数据。出于这两个原因,Symfony文档说.env
不应该提交到VCS。
难道没有更明智的方法来解决这个问题吗?我希望 PHPUnit 只使用.env
中的配置。这不可能吗?我知道我可以在 shell 中指定 ENV 变量或从.bashrc
、.profile
等导出它们,但要么测试调用更复杂,要么我在项目外有一堆项目配置。或者我可以自己编写脚本,让 shell 检查pwd
中是否存在.env
文件,并为下一个命令自动设置该文件,但这似乎有很多开销......
(顺便说一句:使用SQLite不是一个解决方案,因为SQLite不适合我们的需求。此外,数据库凭据只是一个例子。可能还需要使用<env>
配置其他设置。
您可以使用phpunit.xml
.如果phpunit.xml
存在,PHPUnit 将从中读取其文档,而不是从phpunit.xml.dist
读取。
我不确定是否有办法合并这两个配置文件。(如果phpunit.xml.dist
存在,PHPUnit 似乎完全忽略phpunit.xml
。如果没有,那么这可能对您没有真正的帮助。