PHPUnit弃用警告测试失败

时间:2017-05-01 20:37:40

标签: php exception configuration phpunit deprecated

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

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

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

干杯!

编辑:在gist.github.com

上添加了示例文件

4 个答案:

答案 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" />