Symfony - “framework.test”配置未设置为 true

Posted

技术标签:

【中文标题】Symfony - “framework.test”配置未设置为 true【英文标题】:Symfony - "framework.test" config is not set to true 【发布时间】:2021-08-01 14:53:40 【问题描述】:

使用 Symfony 5.2 和 phpUnit 最新版本,我的功能测试出现此错误

LogicException: You cannot create the client used in functional tests if the "framework.test" config is not set to true.

config/packages/test/framework.yaml的内容:

framework:
    test: true
    session:
        storage_id: session.storage.mock_file

我的phpunit.xml.dist 的PHP 部分:

<php>
    <ini name="error_reporting" value="-1"/>
    <server name="APP_ENV" value="test" force="true"/>
    <server name="SHELL_VERBOSITY" value="-1"/>
    <env name="BOOTSTRAP_CLEAR_CACHE_ENV" value="test"/>
</php>

这是我的测试内容:

class JWTTokenAuthenticatorTest extends WebTestCase

    public function test_authentication_token()
    
        $client = static::createClient();
        $client->request(
            'POST',
            '/authentication_token',
            [],
            [],
            ['CONTENT_TYPE' => 'application/json'],
            '"email":"api@api.com","password":"api"'
        );

        $this->assertResponseIsSuccessful();
        $this->assertMatchesRegularExpression('/"token":"(.*)"/i', $client->getResponse()->getContent());
    

我只有默认的 bootstrap.php 文件,我无法理解这个错误,因为 APP_ENV 设置为“测试”。

我试图清除缓存。

当我转储dd($_ENV['APP_ENV']); 时,我有dev,我不明白为什么。

【问题讨论】:

您是否尝试将&lt;server ... /&gt; 更改为&lt;env ... /&gt; 天哪,听起来简单又好听 【参考方案1】:

根据documentation,&lt;server /&gt;在超全局数组$_SERVER中设置一个变量。

对于您想要使用&lt;env /&gt;APP_ENV,它会在$_ENV 数组中设置一个变量。

【讨论】:

以上是关于Symfony - “framework.test”配置未设置为 true的主要内容,如果未能解决你的问题,请参考以下文章

Framework7--Test

如果“framework.test”配置未设置为 true,则无法创建用于功能测试的客户端

使用 Robot Framework Test 在浏览器中上传文件

如何在`django rest_framework test`的`APIClient`的标头中添加身份验证令牌

JUNIT测试通过,但是hansel测试覆盖率的时候报错了,报错信息如下 求支援

Nuint-测试执行逻辑