如何让 Symfony / Panther 在测试中使用测试环境?
How to make Symfony / Panther use the test-environment in tests?
使用 Panther-Client 执行功能测试时,在后台启动的网络服务器不使用 "test" 环境。相反,它似乎使用 .env 文件中提供的参数(当前指向 "dev" 环境),因此我不能将测试数据库用于我的功能测试。
从技术上讲,我可以理解会发生这种情况,因为启动的 php-web 服务器对测试客户端使用的测试环境一无所知,只能看到 .env 文件。
是否有任何我忽略的选项可以告诉 php-web 服务器在测试环境中启动,或者是否有人找到了解决此问题的其他方法?
(硒测试似乎也存在同样的问题,但我也没有找到解决方案。)
感谢您为我指出这个方向。从那里我找到了对更改负责的拉取请求:
https://github.com/symfony/recipes/pull/481
和更新现有项目的文档
https://symfony.com/doc/current/configuration/dot-env-changes.html
一旦我相应地更新了我的项目,从 pather 启动的网络服务器现在使用测试环境。
我必须弄清楚他们是如何准确地告诉在单独进程中启动的网络服务器它将使用测试环境——但目前,它按预期工作。 :-)
我能够通过创建特定的 Panther 环境来解决这个问题:
将此行添加到 .env.test
:
PANTHER_APP_ENV=panther
然后创建一个文件.env.panther
并将您的数据库设置添加到该文件:
DATABASE_URL="mysql://user:password@mariadb:3306/test"
使用 Panther-Client 执行功能测试时,在后台启动的网络服务器不使用 "test" 环境。相反,它似乎使用 .env 文件中提供的参数(当前指向 "dev" 环境),因此我不能将测试数据库用于我的功能测试。
从技术上讲,我可以理解会发生这种情况,因为启动的 php-web 服务器对测试客户端使用的测试环境一无所知,只能看到 .env 文件。
是否有任何我忽略的选项可以告诉 php-web 服务器在测试环境中启动,或者是否有人找到了解决此问题的其他方法?
(硒测试似乎也存在同样的问题,但我也没有找到解决方案。)
感谢您为我指出这个方向。从那里我找到了对更改负责的拉取请求:
https://github.com/symfony/recipes/pull/481
和更新现有项目的文档
https://symfony.com/doc/current/configuration/dot-env-changes.html
一旦我相应地更新了我的项目,从 pather 启动的网络服务器现在使用测试环境。
我必须弄清楚他们是如何准确地告诉在单独进程中启动的网络服务器它将使用测试环境——但目前,它按预期工作。 :-)
我能够通过创建特定的 Panther 环境来解决这个问题:
将此行添加到 .env.test
:
PANTHER_APP_ENV=panther
然后创建一个文件.env.panther
并将您的数据库设置添加到该文件:
DATABASE_URL="mysql://user:password@mariadb:3306/test"