如何使Symfony / Panther在测试中使用测试环境?

时间:2019-02-15 16:46:15

标签: symfony4 functional-testing symfony-panther

在使用Panther-Client执行功能测试时,在后台启动的Web服务器不使用“测试”环境。相反,它似乎使用了.env文件中提供的参数(当前指向“ dev”环境),因此我无法将测试数据库用于功能测试。

从技术上我可以理解这种情况的发生,因为启动的php-webserver对测试客户端使用的测试环境一无所知,只看到.env文件。

有没有我可以忽略的选择,可以告诉php-webserver在测试环境中启动,还是有人找到了解决此问题的另一种方法?

(硒测试似乎存在相同的问题,但是我没有找到解决方法。)

2 个答案:

答案 0 :(得分:0)

感谢您指出我的方向。从那里,我发现了对更改负责的拉取请求:

https://github.com/symfony/recipes/pull/481

以及用于更新现有项目的文档

https://symfony.com/doc/current/configuration/dot-env-changes.html

一旦我相应地更新了项目,从pather启动的Web服务器现在将使用测试环境。
我必须弄清楚它们如何准确地告诉Web服务器在一个单独的进程中启动它将使用测试环境-但就目前而言,它可以按预期工作。 :-)

答案 1 :(得分:0)

我能够通过创建特定的 Panther 环境来解决这个问题:

将此行添加到 .env.test

PANTHER_APP_ENV=panther

然后创建一个文件 .env.panther 并将您的数据库设置添加到该文件中:

DATABASE_URL="mysql://user:password@mariadb:3306/test"