如何避免 phpunit 测试输出被截断:
1) Tests\ApiTest::testGetMetricList
GuzzleHttp\Exception\ServerException: Server error: `GET http://localhost/micobe/myproject_p4/index.php/investors/get_metric_list` resulted in a `500 Internal Server Error` response:
<br />
<font size='1'><table class='xdebug-error xe-exception' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr (truncated...)
/var/www/html/landing-myproject-page/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:113
/var/www/html/landing-myproject-page/vendor/guzzlehttp/guzzle/src/Middleware.php:65
/var/www/html/landing-myproject-page/vendor/guzzlehttp/promises/src/Promise.php:203
/var/www/html/landing-myproject-page/vendor/guzzlehttp/promises/src/Promise.php:156
/var/www/html/landing-myproject-page/vendor/guzzlehttp/promises/src/TaskQueue.php:47
/var/www/html/landing-myproject-page/vendor/guzzlehttp/promises/src/Promise.php:246
/var/www/html/landing-myproject-page/vendor/guzzlehttp/promises/src/Promise.php:223
/var/www/html/landing-myproject-page/vendor/guzzlehttp/promises/src/Promise.php:267
/var/www/html/landing-myproject-page/vendor/guzzlehttp/promises/src/Promise.php:225
/var/www/html/landing-myproject-page/vendor/guzzlehttp/promises/src/Promise.php:62
/var/www/html/landing-myproject-page/vendor/guzzlehttp/guzzle/src/Client.php:131
/var/www/html/landing-myproject-page/app/Http/Controllers/ApiController.php:171
/var/www/html/landing-myproject-page/tests/ApiTest.php:31
Run Code Online (Sandbox Code Playgroud)
如果您经历了通过 PhpUnit\xc2\xa0 调试(截断...)错误消息的困难任务,请参阅下面的全局解决方案!
\n\n捕获到的异常与guzzle版本有关
\n\n\n\n\n围绕 phpunit 测试的 try-catch 将得到 GuzzleException $e
\n
例子
\n\n\xc2\xa0$client = new GuzzleHttp\\Client([\'base_uri\' => \' https://foo.com/api/ \']);
\n\ntry {\n\n $response = $client->request(\'GET\',\'/v1/testYourEndpoint\');\n\n} catch (\\GuzzleHttp\\Exception\\ClientErrorResponseException $e) {\n\n var_dump($e->getResponse()->getBody()->getContents());\n\n} catch (\\GuzzleHttp\\Exception\\RequestException $e) {\n\n print_r($e->xdebug_message);\n var_dump($e->getResponse()->getBody()->getContents());\n\n} catch (\\GuzzleHttp\\Exception\\ClientException $e) {\n\n var_dump($e->getResponse()->getBody()->getContents());\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n