laravel 忽略PHPUnit 9中的弃用通知?

oug3syen  于 2023-02-05  发布在  PHP
关注(0)|答案(3)|浏览(171)

我使用PHPUnit 9运行测试,当我执行assertRegExp时,我收到警告

assertRegExp() is deprecated and will be removed in PHPUnit 10. Refactor your code to use assertMatchesRegularExpression() instead.

如何抑制特定测试的弃用警告?

注意:-我使用Laravel Dusk运行测试,并且使用测试助手assertPathIs

fumotvh3

fumotvh31#

从阅读PHPUnit作者的这篇博客文章中可以看出,没有内置选项可以抑制这些警告:
PHPUnit报告了一个使用过时功能的测试,并带有警告,因为我知道开发人员如何使用或不使用PHP的E_DEPRECATED消息。您不能选择不从PHPUnit获取此信息。
在默认配置下,这不应将测试标记为失败:
默认情况下,当报告使用了已弃用的功能时,PHPUnit的命令行测试运行程序将以shell退出代码0退出。此shell退出代码用于指示未发生错误。例如,持续集成环境使用此信息来确定生成是否成功。如果由于测试使用了PHPUnit中已弃用的功能而希望生成失败,在phpunit.xml中配置failOnWarning=“true”。这指示PHPUnit在使用弃用Assert时以shell退出代码1退出。

5anewei6

5anewei62#

如果您想暂时隐藏弃用警告,而不是开发人员的最佳愿望,请注解掉vendor/bin/.phpunit/phpunit-9.5-0/vendor/symfony/phpunit-bridge/DeprecationErrorHandler.php的第219行。如果文件发生更改,要注解的行如下:$this->displayDeprecations($groups, $configuration, $isFailingAtShutdown);

whlutmcx

whlutmcx3#

我不得不设置symphony env变量来隐藏这些通知。

$ export SYMFONY_DEPRECATIONS_HELPER=weak
$ phpunit --debug --filter="testname"

相关问题