【发布时间】:2021-04-26 15:27:10
【问题描述】:
我正在开发一个 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 都没有显示此变量的正确值,它的值只是es_ES.UTF-8,值我的 Ubuntu 系统中的 $LANG 变量。
我在.env.test.local 文件中定义了其他环境变量,这些都是正确的(如DATABASE_URL)。我也尝试在phpunit.xml.dist 文件(<env name="LANG" value="ca" />)中添加LANG,但它的值没有改变,它仍然是es_ES.UTF-8。
我也删除了var/cache/test目录,但还是不行。
我做错了什么?如何更改测试环境中的语言?
【问题讨论】:
-
您能否通过传递 $LANG=ca 来测试运行您的测试,例如
$LANG=ca ./bin/phpunit?我必须确认它,但您系统的环境变量是主要使用的(最重要的) -
@qdequippe 你是对的:我打开了一个新终端,运行
export LANG=ca,然后运行bin/phpunit,网站内容的语言是正确的。此外,运行bin/console debug:container --env-vars --env=test显示正确的语言......另外,如果我显示开发环境的变量,语言也是ca(系统中的一种)而不是es,@ 中的一种987654347@ 文件。但为什么呢?
标签: symfony testing phpunit symfony-4.4