【问题标题】:PHPUnit deprecation warning fails testPHPUnit 弃用警告未通过测试
【发布时间】:2017-09-29 06:50:34
【问题描述】:

我在安装 PHP 5.3.29 时使用 PHPUnit 4.8。我们应用程序中的一些代码使用了已弃用的mysql_* 功能,PHPUnit 将这些实例的弃用通知转换为异常,从而使这些特定的测试用例失败。

现在我已经在 config.xml 中包含了convertErrorsToExceptions="false",但这似乎没有帮助,因为它仍在发生。

任何人都可以帮助阐明这里可能发生的事情吗?

干杯!

编辑:在gist.github.com上添加了示例文件

【问题讨论】:

    标签: php exception configuration phpunit deprecated


    【解决方案1】:

    convertErrorsToExceptions="false" 配置选项只控制E_ERROR 到异常的转换。不过,弃用表示为E_DEPRECATED。

    configuration option is missing for controlling the conversion of E_DEPRECATED to exceptions。这将在 PHPUnit 6.2 中添加。这不会向后移植到您正在使用的 PHPUnit 版本 PHPUnit 4.8,因为该版本已达到其生命周期的终点。

    不过,您可以在引导脚本中设置 PHPUnit_Framework_Error_Deprecated::$enabled = false;,这将禁止将 E_DEPRECATED 转换为异常。

    【讨论】:

    • 我升级到 PHPUnit 6.5.14,如果有任何弃用通知,我仍然会收到退出代码 1...
    【解决方案2】:

    在最近的版本中(使用 PHP 命名空间),这变成了:

    \PHPUnit\Framework\Error\Deprecated::$enabled = false;
    

    【讨论】:

      【解决方案3】:

      如果有人正在寻找与 Symfony/Drupal 相关的解决方案,一种快速的方法是在您的测试文件中设置 env 变量(我需要它,因为弃用警告来自第三方存储库)。

      putenv('SYMFONY_DEPRECATIONS_HELPER=disabled');
      

      【讨论】:

        【解决方案4】:

        如果您正在寻找 Symfony 3.1 及更高版本的解决方案,答案是

        <env name="SYMFONY_DEPRECATIONS_HELPER" value="disabled" />
        

        【讨论】:

          猜你喜欢
          • 2017-11-30
          • 2021-08-04
          • 2022-01-16
          • 2017-03-06
          • 2012-01-13
          • 1970-01-01
          • 2022-01-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多