【问题标题】:Ignore Deprecation Notice in PHPUnit 9?忽略 PHPUnit 9 中的弃用通知?
【发布时间】:2020-06-21 02:23:06
【问题描述】:

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

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

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

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

【问题讨论】:

  • 也许这个问题可以帮到你stackoverflow.com/questions/43726162/…
  • 我遇到了类似的问题,“assertArraySubset() 已被弃用,将在 PHPUnit 9 中删除”。链接问题中的答案是指抑制来自用户/供应商代码而不是来自 PHPUnit 本身的折旧警告

标签: laravel testing laravel-dusk phpunit


【解决方案1】:

从 PHPUnit 的作者那里阅读this blog post,没有内置选项可以抑制这些警告:

PHPUnit 报告了一个使用已弃用功能的测试并带有警告,因为我知道开发人员如何使用或不使用 PHP 的 E_DEPRECATED 消息。 您不能选择不从 PHPUnit 获取此信息

这不应使用默认配置将测试标记为失败:

默认情况下,当报告使用不推荐使用的功能时,PHPUnit 的命令行测试运行程序会以 shell 退出代码 0 退出。此 shell 退出代码用于指示未发生错误。例如,持续集成环境使用此信息来确定构建是否成功。如果您希望构建失败,因为测试使用了 PHPUnit 中已弃用的功能,请在 phpunit.xml 中配置 failOnWarning="true"。这指示 PHPUnit 在使用不推荐使用的断言时以 shell 退出代码 1 退出。

【讨论】:

  • 然而,在 PHP Storm 中,退出代码 0 仍然被标记为失败
猜你喜欢
  • 2022-01-16
  • 2016-05-22
  • 2012-01-14
  • 1970-01-01
  • 1970-01-01
  • 2010-11-27
  • 2014-07-17
  • 1970-01-01
  • 2020-09-27
相关资源
最近更新 更多