找不到Codeception/Symfony4环境变量:“0”;数据库“URL”;

找不到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:

我在Symfony4有一个项目,里面有doctrine DB,一切都很顺利

我想用Codeception添加一些功能和单元测试。我按照文档进行操作,并将其添加到我的functional.suite.yml

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
显示了什么