在现代编程工作流程中,一次使用了大量测试框架。例如,在PHP世界中,它实际上是一次使用单元测试,集成测试和功能/验收测试的标准方法。大多数情况下,不同的框架用于不同的测试类型。我正在使用PHPSpec for unit,PHPunit进行集成和CodeCeption进行功能测试。
是否可以聚合每个框架返回的代码覆盖率结果?是否有任何工具可以汇总来自不同框架的代码覆盖率报告? 或者,只有在每个框架不正确时才能查看每个框架的单个结果,因为每个代码覆盖率报告都没有考虑其他测试。
答案 0 :(得分:3)
执行此任务实际上非常简单。您的所有框架都依赖于相同的库来生成代码覆盖率。
正如您所见,sebastianbergmann/php-code-coverage中的生成器已经支持合并功能(第335行)以合并不同的聚合。由于您是使用测试的团队的一员,因此我假设您可以轻松地更改测试执行层以在单个php进程中收集代码覆盖率并仅合并它们。
答案 1 :(得分:1)
有一个工具:phpcov。它允许使用合并选项合并多个coverage文件:
$ parallel --gnu ::: \
'phpunit --coverage-php /tmp/coverage/FooTest.cov tests/FooTest' \
'phpunit --coverage-php /tmp/coverage/BarTest.cov tests/BarTest'
$ phpcov merge /tmp/coverage --clover /tmp/clover.xml
phpcov 2.0.0 by Sebastian Bergmann.
Generating code coverage report in Clover XML format ... done
答案 2 :(得分:-1)
我想我们在同一条船上。我们如何使用这种全不同的测试工具来判断我们有多少融合。我们开始与团队讨论并决定前往
SonarSource。 - 对于PHP插件和现场演示
PHP报告Stlyle - 我建议您访问现场演示。它会有所帮助。
这是非常强大的工具。它为我们提供了所有代码。
答案 3 :(得分:-1)
Semantic Designs(我的公司)的PHP Test Coverage Tool收集并整合了任何
的测试覆盖率运行一些测试后,可以轻松触发我们的工具将测试覆盖率向量转储到文件中;你需要稍微修改框架来调用
TCVDump();
框架完成时,或者您可以通过触摸测试覆盖率工具添加的易于找到的特殊网页来调用TCVDDump()。每个这样的调用产生一个带时间戳或用户命名的文件(例如,在框架或测试集之后),以便它们易于识别
作为工具一部分的图形测试覆盖率显示将以交互方式选择和合并这些文件的小型或大型集合,以生成连贯的整体,包括显示和摘要。它还将比较测试覆盖率向量,以确定一个测试集的覆盖范围是否包含/与另一个测试集相交,等等。 测试覆盖率显示组件还将导出覆盖结果的文本或XML / HTML摘要。
您甚至可以在不同的子系统上运行测试并将它们组合在一起。这个测试覆盖率工具是PHP以外的许多语言的大型工具系列的一部分;在多语言应用程序系统上运行的测试也可以组合在一起,以提供多语言应用程序的覆盖范围概览。