Symfony 4: ENV in phpunit.xml.dist



为了让功能测试在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。如果没有,那么这可能对您没有真正的帮助。

最新更新