Symfony 禁用 ApiPlatform ApiTestCase 中的异常输出

问题描述 投票:0回答:1

我正在尝试使用

ApiPlatform\Symfony\Bundle\Test\ApiTestCase
在 php Symfony 框架中为控制器编写 API 测试,但是当我在控制器中抛出异常(违反约束)时,我在控制台中得到以下输出:

...[error] Uncaught PHP Exception ApiPlatform\Symfony\Validator\Exception\ValidationException: "Exception message" at /srv/src/Repository/MyRepository line 244
string(0) ""
.......                                                        10 / 10 (100%)

如您所见,打破了虚线并写入了错误消息。

这个问题只是视觉上的,但它仍然困扰着我,因为当完成更多这样的测试时,它会使测试输出不可读。

我的代码:

 $response = $this->client->request('POST', '/api/test', [
            'headers' => [
                'Authorization' => $this->token,
            ],
            'json' => [
                'data1' => 1,
                'data2' => 1
            ],
        ]);


        $this->assertResponseStatusCodeSame(Response::HTTP_UNPROCESSABLE_ENTITY);
        $this->assertEquals('Exception message', $response->toArray(false)['violations'][0]['message']);

抛出异常的代码:


            $violation = new ConstraintViolation('Exception message', '', [], '', '', '');
            throw new ValidationException((new ConstraintViolationList([$violation])));
        

测试正常进行,响应正确,HTTP 代码也正常,但在我看来,控制台的输出不应该存在。

我可以以某种方式禁用它吗?

symfony phpunit api-platform.com
1个回答
0
投票

安装

monolog
并对其进行配置,以便将错误转储到日志文件中解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.