PHPUnit桥接

编辑本页

警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 2.7,现已不再维护。

本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。

PHPUnit桥接

PHPUnit Bridge提供了报告遗留测试和废弃代码使用情况的实用程序。

它具有以下功能:

  • 强制测试使用一致的区域设置(C);
  • Auto-registerclass_exists加载Doctrine注释(当使用时);
  • 它显示了应用程序中使用的已弃用特性的整个列表;
  • 按需显示弃用的堆栈跟踪;

2.7

PHPUnit桥是在Symfony 2.7中引入的。欧宝娱乐app下载地址但是可以在任何Symfony应用程序(甚至2.3)中安装桥。欧宝娱乐app下载地址

安装

1
编写器require—dev“欧宝娱乐app下载地址symfony / phpunit-bridge: *”

或者,您可以克隆https://github.com/欧宝娱乐app下载地址symfony/phpunit-bridge存储库。

请注意

如果在Symfony应用程序外部安装此组件,则必须要求欧宝娱乐app下载地址供应商/ autoload.php文件,以启用Composer提供的类自动加载机制。读这篇文章欲知详情。

请注意

PHPUnit桥设计用于使用Symfony组件的所有维护版本,甚至跨不同的主要版本。欧宝娱乐app下载地址您应该始终使用其最新的稳定主版本,以获得最准确的弃用报告。

使用

一旦组件被安装,asimple-phpunit脚本在供应商/目录运行测试。这个脚本包装了原始的PHPUnit二进制文件,以提供更多的功能:

1 2
cd我的项目//供应商/ bin / simple-phpunit

在运行你的PHPUnit测试之后,你会得到一个类似于下面的报告:

总结内容包括:

Unsilenced
报告在没有建议的情况下触发的弃用通知@-silencing运营商
遗产
弃用通知表示显式测试某些遗留特性的测试。
剩余的/其他
弃用通知是所有其他(非遗留)通知,按消息、测试类和方法分组。

请注意

如果你不想用simple-phpunit脚本,注册以下内容PHPUnit事件监听器在PHPUnit配置文件中获得相同的关于弃用的报告(该报告由PHP错误处理程序被称为DeprecationErrorHandler):

1 2 3 4 5
<!——phpunit.xml.dist——><!——……--><听众><侦听器“欧宝娱乐app下载地址Symfony \ \ PhpUnit) \ SymfonyTestsListener桥”/>听众>

触发弃用通知

使用以下命令可以触发弃用通知:

1
@trigger_error (“您的弃用信息”, E_USER_DEPRECATED);

没有@-silencing运营商,用户将需要选择退出弃用通知。默认情况下,沉默可以交换这种行为,并允许用户在准备好应对这些错误时选择加入(通过添加一个自定义错误处理程序,就像这个桥所提供的那样)。未静音时,弃用通知将出现在Unsilenced部分的弃用报告。

将测试标记为遗产

有三种方法将测试标记为遗留:

  • 推荐)加上@group遗留类或方法的注释;
  • 的类名开始遗产前缀;
  • 使其方法名以testLegacy * ()而不是测试* ()

请注意

如果数据提供程序调用的代码通常会触发弃用,则可以在其名称前加上provideLegacygetLegacy为了消除这些反对意见。如果您的数据提供程序没有执行废弃的代码,那么不需要选择特殊的命名,因为数据提供程序提供的测试被标记为遗留的。

还要注意,选择两个遗留前缀之一将不会将使用此数据提供程序的测试标记为遗留测试。您仍然必须显式地将它们标记为遗留测试。

配置

如果需要检查单元测试触发的特定弃用的堆栈跟踪,则可以设置欧宝娱乐app下载地址SYMFONY_DEPRECATIONS_HELPER环境变量到与此弃用消息匹配的正则表达式,并用/.例如,使用:

12 3 4 5 6 7 8 9 10 11 12
<!——http://phpunit.de/manual/4.1/en/appendixes.configuration.html——><phpunit)xmlns: xsi“http://www.w3.org/2001/XMLSchema-instance”xsi: noNamespaceSchemaLocation“http://schema.phpunit.de/4.1/phpunit.xsd”><!——……--><php><服务器的名字“KERNEL_DIR”价值“应用程序/”/><env的名字“欧宝娱乐app下载地址SYMFONY_DEPRECATIONS_HELPER”价值“foobar /”/>php>phpunit)>

PHPUnit)将停止您的测试套件一旦弃用通知被触发,其消息包含“foobar”字符串。

使测试失败

默认情况下,任何非遗留标记或任何非“@-silenced”_弃用通知将使测试失败。另外,设置欧宝娱乐app下载地址SYMFONY_DEPRECATIONS_HELPER到任意值(例如:320)将使测试仅在达到较高数量的弃用通知(0为默认值)。您也可以设置该值“弱”这将使桥忽略任何弃用通知。这对于由于向后兼容性原因而必须使用弃用接口的项目非常有用。

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。