Codeception/Symfony4 未找到环境变量:"DATABASE_URL"
Codeception/Symfony4 Environment variable not found: "DATABASE_URL"
我在 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: ~
然而,当 运行ning vendor/bin/codecept 运行 我变得丑陋:
In EnvVarProcessor.php line 131:
Environment variable not found: "DATABASE_URL".
我在文档中看不到任何其他相关内容,所以不确定我遗漏了什么。
您的 codeception.yml 配置文件是否有此部分:
params:
- .env
- .env.test
- ...
如果有,您需要检查列表中的最后一个 .env 文件并确保它具有 DATABASE_URL 变量集.
另一个解决方案是从列表中删除除您的应用程序正在使用的 .env 之外的所有文件。 (我不建议)
加载此列表中的每个文件时,它会覆盖前一个文件中存在的变量。
不幸的是,我无法解释它背后的机制,但为了解决它,我不得不将 DATABASE_URL 环境变量添加到我的 OS.
export DATABASE_URL='mysql: ...';
这对我来说似乎很奇怪的解决方案(同样,我不知道为什么 Codeception 需要这个),所以我继续挖掘。我后来发现的东西,但似乎实际上导致整个情况的是我安装 Codeception 的方式。如果你去 codeception docs 你可以阅读:
If you don't plan to do acceptance testing, you can get minimal installation of Codeception by requiring codeception/base
编辑 2020 年 7 月:有关最小安装的信息已从链接网站中删除,看起来 Codeception 不再提供该选项。
我就是这样安装的。在玩了很多之后,我在 before codeception 中提取了一个版本的代码并使用 composer require codeception/codeception --dev
安装(所以 full 版本)。以这种方式安装后我没有任何问题。
我在 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: ~
然而,当 运行ning vendor/bin/codecept 运行 我变得丑陋:
In EnvVarProcessor.php line 131:
Environment variable not found: "DATABASE_URL".
我在文档中看不到任何其他相关内容,所以不确定我遗漏了什么。
您的 codeception.yml 配置文件是否有此部分:
params:
- .env
- .env.test
- ...
如果有,您需要检查列表中的最后一个 .env 文件并确保它具有 DATABASE_URL 变量集.
另一个解决方案是从列表中删除除您的应用程序正在使用的 .env 之外的所有文件。 (我不建议)
加载此列表中的每个文件时,它会覆盖前一个文件中存在的变量。
不幸的是,我无法解释它背后的机制,但为了解决它,我不得不将 DATABASE_URL 环境变量添加到我的 OS.
export DATABASE_URL='mysql: ...';
这对我来说似乎很奇怪的解决方案(同样,我不知道为什么 Codeception 需要这个),所以我继续挖掘。我后来发现的东西,但似乎实际上导致整个情况的是我安装 Codeception 的方式。如果你去 codeception docs 你可以阅读:
If you don't plan to do acceptance testing, you can get minimal installation of Codeception by requiring
codeception/base
编辑 2020 年 7 月:有关最小安装的信息已从链接网站中删除,看起来 Codeception 不再提供该选项。
我就是这样安装的。在玩了很多之后,我在 before codeception 中提取了一个版本的代码并使用 composer require codeception/codeception --dev
安装(所以 full 版本)。以这种方式安装后我没有任何问题。