LANG 变量在测试环境中未被覆盖

问题描述

我正在处理一个 Symfony 4.4 项目。该项目是从头开始创建的(它不是 3.4 代码库或类似内容的更新)。我正在向我的代码库添加自动化测试,但我遇到了环境变量问题。

在我的 .env.env.local.env.test.env.test.local 中,我定义了一个 LANG 变量来设置应用程序语言。为了在我开发时正确测试翻译,我在 dev 环境(.env.local 文件)中设置了 LANG=es,并且它可以正常工作。在生产中它也能正常工作,但在测试中,在 .env.test.local 文件中我设置了 LANG=ca 但 PHPUnit 和 bin/console debug:container --env-vars --env=test 都没有显示此变量的正确值,它的值只是 { {1}},我的 Ubuntu 系统中 es_ES.UTF-8 变量的值。

我在 $LANG 文件中定义了其他环境变量,这些都是正确的(如 .env.test.local)。我还尝试在 DATABASE_URL 文件 (LANG) 中添加 phpunit.xml.dist,但它的值没有改变,它仍然是 <env name="LANG" value="ca" />

我也删除了 es_ES.UTF-8 目录,但它仍然不起作用。

我做错了什么?如何更改测试环境中的语言?

解决方法

检查https://symfony.com/doc/current/configuration.html#overriding-environment-values-via-env-local

真正的环境变量总是胜过由任何 .env 文件创建的环境变量。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...