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