新在Symfoob娱乐下载ny 3.4:更好的代码覆盖报告
2017年9月27日·发表的哈维尔Eguiluz
警告:这篇文章是关于一个不受支持的Symfony的版本。ob娱乐下载其中一些信息可能是过时了。阅读最近的Symfony文档ob娱乐下载。
提供的
格雷戈勒Pineau
在# 23149。
代码覆盖率是衡量描述程序的源代码的程度是由一个特定的测试套件进行测试。代码与高代码覆盖率更彻底地测试和包含错误的几率较低。PHPUnit)提供了实用程序测量代码覆盖率,但他们不够精确。
考虑一下这个简单的例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
类酒吧{公共函数barMethod(){返回“酒吧”;}}类喷火{私人美元酒吧;公共函数__construct(酒吧美元酒吧){美元这- >酒吧=美元酒吧;}公共函数fooMethod(){美元这- >酒吧- >barMethod ();返回“酒吧”;}}
如果您的测试看起来如下:
1 2 3 4 5 6 7 8 9 10
类脚扩展PHPUnit)\框架\TestCase{公共函数测试(){美元酒吧=新酒吧();美元喷火=新Foo (美元酒吧);美元这- >assertSame (“酒吧”,美元喷火- >fooMethod ());}}
PHPUnit)认为一行代码测试尽快被处死。的脚:测试
执行每一行代码的方法喷火
和酒吧
类,因此计算出的代码覆盖率PHPUnit)将是100%。然而,这并不精确,因为酒吧
类不是真正的考验。
解决方案是使用PHPUnit)@covers
注释在每一个测试类来指定这类测试是测试。这个解决方案是复杂的且难于维护在Syob娱乐下载mfony 3.4我们已经添加了一个CoverageListener到PHPUnit)桥组件提供更好的代码覆盖率报告。
唯一的变化是您需要在您的应用程序注册CoverageListener
为PHPUnit)侦听器phpunit.xml
配置文件:
1 2 3 4 5 6 7 8 9
<phpunit)xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xsi: noNamespaceSchemaLocation=“http://schema.phpunit.de/6.0/phpunit.xsd”>< !——……- - ><听众><侦听器类=“ob娱乐下载Symfony \ \ PhpUnit) \ CoverageListener桥”/ >< /听众>< /phpunit)>
该侦听器检查每一个测试类,如下:
- 如果类有一个
@covers
注释,什么也不做; - 如果没有
@covers
注释是发现,找到这类自动测试的代码,添加注释。
用于查找的逻辑测试代码是基于Symfony的最佳实践:测试使用相同的代码,并添加一个目录结构ob娱乐下载测试
类名称后缀。例如,如果测试类我\名称空间\ \脚测试
,相关的类是猜的我\名称空间\ Foo
。
如果这个猜测逻辑太简单或不适合您的应用程序,您可以提供您自己的解决者PHPUnit)监听器:
1 2 3 4 5 6 7
<听众><侦听器类=“ob娱乐下载Symfony \ \ PhpUnit) \ CoverageListener桥”><参数><字符串>应用程序测试\ \ CoverageSolver::解决< /字符串>< /参数>< /侦听器>< /听众>
发表在#生活在边缘
评论
评论都关门了。
以确保评论保持相关,他们关闭了旧的帖子。