PHPUnit 弃用警告未通过测试
PHPUnit deprecation warning fails test
我在 PHP 5.3.29 安装中使用 PHPUnit 4.8。我们应用程序中的一些代码使用了已弃用的 mysql_*
功能,并且 PHPUnit 将这些实例的弃用通知转换为异常,从而使那些特定的测试用例失败。
现在我已经将 convertErrorsToExceptions="false"
包含在 config.xml 中,但这似乎没有帮助,因为它仍在发生。
任何人都可以帮助阐明这里可能发生的事情吗?
干杯!
编辑:在gist.github.com
上添加了示例文件
convertErrorsToExceptions="false"
配置选项只控制 E_ERROR
到异常的转换。不过,弃用表示为 E_DEPRECATED
。
一个configuration option is missing for controlling the conversion of E_DEPRECATED
to exceptions。这将在 PHPUnit 6.2 中添加。这不会反向移植到 PHPUnit 4.8,即您正在使用的 PHPUnit 版本,因为该版本已达到生命周期的尽头。
在您的 bootstrap 脚本中,您可以设置 PHPUnit_Framework_Error_Deprecated::$enabled = false;
,但是,这将禁用 E_DEPRECATED
到异常的转换。
在最近的版本中(使用 PHP 个命名空间),这变成了:
\PHPUnit\Framework\Error\Deprecated::$enabled = false;
如果有人正在寻找 Symfony/Drupal 相关的解决方案,一种快速的方法是在您的测试文件中设置环境变量(我需要它,因为弃用警告来自第三方存储库)。
putenv('SYMFONY_DEPRECATIONS_HELPER=disabled');
如果您正在寻找 Symfony 3.1 及更高版本的解决方案,答案是
<env name="SYMFONY_DEPRECATIONS_HELPER" value="disabled" />
我在 PHP 5.3.29 安装中使用 PHPUnit 4.8。我们应用程序中的一些代码使用了已弃用的 mysql_*
功能,并且 PHPUnit 将这些实例的弃用通知转换为异常,从而使那些特定的测试用例失败。
现在我已经将 convertErrorsToExceptions="false"
包含在 config.xml 中,但这似乎没有帮助,因为它仍在发生。
任何人都可以帮助阐明这里可能发生的事情吗?
干杯!
编辑:在gist.github.com
上添加了示例文件convertErrorsToExceptions="false"
配置选项只控制 E_ERROR
到异常的转换。不过,弃用表示为 E_DEPRECATED
。
一个configuration option is missing for controlling the conversion of E_DEPRECATED
to exceptions。这将在 PHPUnit 6.2 中添加。这不会反向移植到 PHPUnit 4.8,即您正在使用的 PHPUnit 版本,因为该版本已达到生命周期的尽头。
在您的 bootstrap 脚本中,您可以设置 PHPUnit_Framework_Error_Deprecated::$enabled = false;
,但是,这将禁用 E_DEPRECATED
到异常的转换。
在最近的版本中(使用 PHP 个命名空间),这变成了:
\PHPUnit\Framework\Error\Deprecated::$enabled = false;
如果有人正在寻找 Symfony/Drupal 相关的解决方案,一种快速的方法是在您的测试文件中设置环境变量(我需要它,因为弃用警告来自第三方存储库)。
putenv('SYMFONY_DEPRECATIONS_HELPER=disabled');
如果您正在寻找 Symfony 3.1 及更高版本的解决方案,答案是
<env name="SYMFONY_DEPRECATIONS_HELPER" value="disabled" />