找不到Codeception/Symfony4环境变量:“0”;数据库“URL”;
我在Symfony4有一个项目,里面有doctrine DB,一切都很顺利 我想用Codeception添加一些功能和单元测试。我按照文档进行操作,并将其添加到我的functional.suite.yml:找不到Codeception/Symfony4环境变量:“0”;数据库“URL”;,symfony,doctrine-orm,doctrine,symfony4,codeception,Symfony,Doctrine Orm,Doctrine,Symfony4,Codeception,我在Symfony4有一个项目,里面有doctrine DB,一切都很顺利 我想用Codeception添加一些功能和单元测试。我按照文档进行操作,并将其添加到我的functional.suite.yml: actor: FunctionalTester modules: enabled: - Symfony: app_path: 'src' environment: 'test' - Doctrine2:
actor: FunctionalTester
modules:
enabled:
- Symfony:
app_path: 'src'
environment: 'test'
- Doctrine2:
depends: Symfony
# cleanup: true
- \Helper\Functional
# - Db
step_decorators: ~
但是,当运行供应商/bin/codecept时,我会得到一个丑陋的结果:
在EnvVarProcessor.php第131行中:
未找到环境变量:“数据库\ URL”
我在文档中看不到任何其他相关内容,因此不确定我遗漏了什么。您的codeception.yml配置文件是否包含以下部分:
params:
- .env
- .env.test
- ...
如果有,您需要检查列表上的最后一个.env文件,并确保它设置了DATABASE\u URL变量
另一种解决方案是从列表中删除除应用程序正在使用的.env之外的所有文件。(我不建议这样做)
当加载此列表中的每个文件时,它会覆盖上一个文件中存在的变量。不幸的是,我无法解释它背后的机制,但要解决它,我必须将数据库URL环境变量添加到我的操作系统中
export DATABASE_URL='mysql: ...';
这对我来说似乎是一个非常奇怪的解决方案(同样,我也不知道Codeception为什么需要这个),所以我一直在挖掘。我后来发现了一些东西,但实际上似乎是我安装Codeception的方式导致了整个情况。如果你去,你可以阅读:
如果您不打算进行验收测试,您可以通过要求Codeception/base
编辑2020年7月:有关最小安装的信息已从链接网站中删除,看起来Codeception不再提供该选项。
我就是这样安装的。在玩了很多游戏之后,我在codeception之前拉了一个版本的代码,并使用
composer require codeception/codeception--dev
(因此是完整版)。以这种方式安装之后,我没有任何问题。我想知道与--env=dev
相比,bin/console关于--env=test
显示了什么