1

为了在 Symfony 4 中进行功能测试,我必须添加一个<env .../>标签来phpunit.xml.dist指定数据库凭据。

我对此感到尴尬的是,这phpunit.xml.dist当然是致力于 VCS。这意味着数据库凭据,通常是 - 至少如果不使用 Docker - 主机特定的,被提交给 VCS。(另外:环境设置可能包含敏感数据。出于这两个原因,Symfony 文档说不.env应该提交给 VCS。)

难道没有更明智的方法来处理这个问题吗?我希望 PHPUnit 只使用来自.env. 这不可能吗?我知道我可以只在 shell 中指定 ENV 变量或从中导出它们.bashrc.profile等等,但要么测试调用更复杂,要么我在项目之外有一堆项目配置。或者我可以自己编写脚本并让 shell 检查其中是否存在.env文件pwd并自动为下一个命令设置该文件,但这似乎有点开销……</p>

(顺便说一句:使用 SQLite 不是一种解决方案,因为 SQLite 不适合我们的需求。此外,数据库凭据只是一个示例。可能还需要配置其他设置<env>。)

4

1 回答 1

2

你可以使用phpunit.xml. 如果phpunit.xml存在,PHPUnit 将从它而不是从phpunit.xml.dist.

我不确定是否有办法组合这两个配置文件。(如果存在,PHPUnit 似乎phpunit.xml.dist完全忽略了它phpunit.xml。)如果不存在,那么这可能对您没有帮助。

于 2018-01-11T01:15:26.363 回答