【问题标题】:Environment variables for tests in Symfony 4Symfony 4 中测试的环境变量
【发布时间】:2018-04-16 12:36:03
【问题描述】:

我在 services.yaml 中有一个配置

parameters:
   locale: 'en'
   uri: '%env(resolve:DEV_ENV_URI)%'

但是当我执行测试时,我在哪里使用过这个参数

public function setUp()
{
    $this->client = static::createClient();

    static::bootKernel();

    $this->container = static::$kernel->getContainer();

    $this->guzzle = new Client(
        [
            'base_uri' => $this->container->getParameter('uri'),
            'verify' => false
        ]
    );
}

我收到以下错误:

未找到环境变量:“DEV_ENV_URI”。

这是我的.env

APP_ENV=test
DEV_ENV_URI=http://0.0.0.0:8000/

在请求期间的开发环境中一切都很好,但是当我从终端运行测试时,环境无法正常工作。

也许您可以提出任何其他想法,如何解决基于测试原因建立基本 URI 的问题?

非常感谢您的任何想法!

【问题讨论】:

    标签: php symfony testing environment-variables


    【解决方案1】:

    我认为解决这个问题的正确方法是使用 PHPUnit 的配置文件:

    <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/6.1/phpunit.xsd"
             backupGlobals="false"
             colors="true"
             bootstrap="vendor/autoload.php"
    >
        <php>
            <ini name="error_reporting" value="-1" />
            <env name="KERNEL_CLASS" value="App\Kernel" />
            <env name="APP_ENV" value="test" />
            <env name="APP_DEBUG" value="1" />
            <env name="APP_SECRET" value="s$cretf0rt3st" />
        </php>
    </phpunit>
    

    【讨论】:

      【解决方案2】:

      我用老式的方式,创建parameters.yml并添加到gitignore中。

      【讨论】:

        猜你喜欢
        • 2020-05-09
        • 1970-01-01
        • 2015-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-25
        • 2018-03-16
        相关资源
        最近更新 更多