我使用PHPUnit 9运行测试,当我执行assertRegExp时,我收到警告
assertRegExp
assertRegExp() is deprecated and will be removed in PHPUnit 10. Refactor your code to use assertMatchesRegularExpression() instead.
如何抑制特定测试的弃用警告?
注意:-我使用Laravel Dusk运行测试,并且使用测试助手assertPathIs。
assertPathIs
fumotvh31#
从阅读PHPUnit作者的这篇博客文章中可以看出,没有内置选项可以抑制这些警告:PHPUnit报告了一个使用过时功能的测试,并带有警告,因为我知道开发人员如何使用或不使用PHP的E_DEPRECATED消息。您不能选择不从PHPUnit获取此信息。在默认配置下,这不应将测试标记为失败:默认情况下,当报告使用了已弃用的功能时,PHPUnit的命令行测试运行程序将以shell退出代码0退出。此shell退出代码用于指示未发生错误。例如,持续集成环境使用此信息来确定生成是否成功。如果由于测试使用了PHPUnit中已弃用的功能而希望生成失败,在phpunit.xml中配置failOnWarning=“true”。这指示PHPUnit在使用弃用Assert时以shell退出代码1退出。
5anewei62#
如果您想暂时隐藏弃用警告,而不是开发人员的最佳愿望,请注解掉vendor/bin/.phpunit/phpunit-9.5-0/vendor/symfony/phpunit-bridge/DeprecationErrorHandler.php的第219行。如果文件发生更改,要注解的行如下:$this->displayDeprecations($groups, $configuration, $isFailingAtShutdown);
vendor/bin/.phpunit/phpunit-9.5-0/vendor/symfony/phpunit-bridge/DeprecationErrorHandler.php
$this->displayDeprecations($groups, $configuration, $isFailingAtShutdown);
whlutmcx3#
我不得不设置symphony env变量来隐藏这些通知。
$ export SYMFONY_DEPRECATIONS_HELPER=weak $ phpunit --debug --filter="testname"
3条答案
按热度按时间fumotvh31#
从阅读PHPUnit作者的这篇博客文章中可以看出,没有内置选项可以抑制这些警告:
PHPUnit报告了一个使用过时功能的测试,并带有警告,因为我知道开发人员如何使用或不使用PHP的E_DEPRECATED消息。您不能选择不从PHPUnit获取此信息。
在默认配置下,这不应将测试标记为失败:
默认情况下,当报告使用了已弃用的功能时,PHPUnit的命令行测试运行程序将以shell退出代码0退出。此shell退出代码用于指示未发生错误。例如,持续集成环境使用此信息来确定生成是否成功。如果由于测试使用了PHPUnit中已弃用的功能而希望生成失败,在phpunit.xml中配置failOnWarning=“true”。这指示PHPUnit在使用弃用Assert时以shell退出代码1退出。
5anewei62#
如果您想暂时隐藏弃用警告,而不是开发人员的最佳愿望,请注解掉
vendor/bin/.phpunit/phpunit-9.5-0/vendor/symfony/phpunit-bridge/DeprecationErrorHandler.php
的第219行。如果文件发生更改,要注解的行如下:$this->displayDeprecations($groups, $configuration, $isFailingAtShutdown);
whlutmcx3#
我不得不设置symphony env变量来隐藏这些通知。