Codeception/Symfony4 未找到环境变量:"DATABASE_URL"



我在Symfony4中有一个带有学说DB的项目,一切都飞了。

我想用Codeception添加一些功能和单元测试。我按照文档将其添加到我的functional.suite.yml中:

actor: FunctionalTester
modules:
enabled:
- Symfony:
app_path: 'src'
environment: 'test'
- Doctrine2:
depends: Symfony
#            cleanup: true
- HelperFunctional
#       - Db
step_decorators: ~        

但是,当运行供应商/bin/codecept运行时,我得到了一个丑陋的:

在 EnvVarProcessor 中.php第 131 行:

找不到环境变量:"DATABASE_URL"。

我在文档中看不到任何其他相关内容,所以不确定我错过了什么。

你的codeception.yml配置文件有这个部分吗:

params:
- .env
- .env.test
- ...

如果有,则需要检查列表中的最后一个 .env 文件,并确保它设置了DATABASE_URL变量

另一种解决方案是从列表中删除除应用正在使用的 .env 之外的所有文件。(我不建议(

加载此列表中的每个文件时,它将覆盖上一个文件中存在的变量。

不幸的是,我无法解释它背后的机制,但要解决它,我不得不将DATABASE_URL环境变量添加到我的操作系统中。

export DATABASE_URL='mysql: ...';

这对我来说似乎非常奇怪的解决方案(同样,我不知道为什么Codeception需要这个(,所以我一直在挖掘。我后来发现的东西,但似乎实际上导致整个情况是我安装 Codeception 的方式。如果您转到codeception文档,则可以阅读:

如果您不打算进行验收测试,则可以通过要求codeception/base来最大程度地安装Codeception

编辑 2020 年 7 月:有关最小安装的信息已从链接网站中删除,看起来 Codeception 不再提供该选项。

这就是我安装它的方式。在玩了很多之后,我在codeception之前提取了一个版本的代码并使用composer require codeception/codeception --dev安装(所以完整版本(。以这种方式安装后,我没有任何问题。

相关内容

  • 没有找到相关文章

最新更新