php - Symfony 4 中用于测试的环境变量

标签 php symfony testing environment-variables

我在 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
        ]
    );
}

我遇到了以下错误:

Environment variable not found: "DEV_ENV_URI".

这是我的.env:

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

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

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

非常感谢任何想法!

最佳答案

我认为解决这个问题的正确方法是使用 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>

关于php - Symfony 4 中用于测试的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49857543/

相关文章:

ruby-on-rails - 使用 Cucumber 测试在 rails 3 上上传

testing - Cpputest:如何编译和使用expectNoCall?

php - Mysql - 日期范围内的用户分析

php - Sendgrid:权限被拒绝,凭据错误

javascript - Twitter bootstrap carousel 无法正常工作(symfony2 项目)

symfony - 有 Symfony2 默认容器服务列表吗?

php - 有没有一种方法可以检查多个与关系表中最小值的匹配?

php - 使脚本性能更高效

javascript - 用于插入、更新和删除数据库项目的 AJAX 代码

javascript - Spectron 测试顺序 Action