【问题标题】:Turn off deprecated and strict errors when running tests运行测试时关闭已弃用和严格的错误
【发布时间】:2019-02-25 04:21:30
【问题描述】:

我正在尝试为非常古老的 PHP 项目(Symfony 2.2.4、PHPUnit 4.8.36)制作工作测试套件。

当我使用命令行 ./phpunit -c app my/tests/path 运行测试时,我遇到了 symfony 错误,例如:

bindRequest() is deprecated since version 2.1 and will be removed in 2.3. Use FormInterface::bind() instead. 

我现在希望运行测试时不出现已弃用或严格错误。该怎么做?

注意:我没有 phpunit 配置文件(也不知道如何创建它)。 注意2:我的php.ini 已经在/etc/php/5.6/cli/php.ini 中将error_reporting 设置为E_ALL & ~E_DEPRECATED & ~E_STRICT

【问题讨论】:

  • 添加到你的脚本 "error_reporting(E_ALL & ~(E_STRICT | E_DEPRECATED) ); "
  • @LarsStegelitz 我的 php.ini 中有这个配置。您说将其添加到包含 test 的 .php 脚本文件的顶部?我有很多带有测试的 php 脚本。我必须将它添加到所有文件中吗?没地方设置一次?
  • 看消息看起来更像是来自框架,而不是来自 PHP 本身。
  • @LarsStegelitz 如果你认为它来自 Symfony,你知道在哪里配置它吗?注意:运行开发服务器时,deprecated 和 stricts 不会产生致命错误。
  • 您尝试过这些解决方案吗? stackoverflow.com/questions/28850809/…

标签: php symfony phpunit


【解决方案1】:

适合我的解决方案:安装此组件:

composer require symfony/debug

并将其添加到AppKernel#init:

if ($this->debug ) {
    Debug::enable(E_RECOVERABLE_ERROR & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED, false);
    // ...

【讨论】:

    猜你喜欢
    • 2012-03-01
    • 2011-02-17
    • 2013-07-03
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    • 2018-10-22
    • 1970-01-01
    • 2013-10-28
    相关资源
    最近更新 更多