Testing 聚合来自不同测试框架的代码覆盖率

Testing 聚合来自不同测试框架的代码覆盖率,testing,phpunit,code-coverage,codeception,phpspec,Testing,Phpunit,Code Coverage,Codeception,Phpspec,在现代编程工作流程中,同时使用了许多测试框架。例如,在PHP世界中,同时使用单元测试、集成测试和功能/验收测试是事实上的标准方式。大多数情况下,不同的框架用于不同的测试类型。我将PHPSpec用于单元,PHPunit用于集成,CodeCeption用于功能测试 是否可以聚合每个框架返回的代码覆盖率结果?是否有任何工具可以聚合来自不同框架的代码覆盖率报告? 或者,由于每个代码覆盖率报告都没有考虑到其他测试,所以只有在每个框架的结果不正确时,才有可能查看每个框架的单个结果。我认为我们在同一条船上。我

在现代编程工作流程中,同时使用了许多测试框架。例如,在PHP世界中,同时使用单元测试、集成测试和功能/验收测试是事实上的标准方式。大多数情况下,不同的框架用于不同的测试类型。我将PHPSpec用于单元,PHPunit用于集成,CodeCeption用于功能测试

是否可以聚合每个框架返回的代码覆盖率结果?是否有任何工具可以聚合来自不同框架的代码覆盖率报告?
或者,由于每个代码覆盖率报告都没有考虑到其他测试,所以只有在每个框架的结果不正确时,才有可能查看每个框架的单个结果。

我认为我们在同一条船上。我们如何使用这个完全不同的测试工具来判断我们已经收敛了多少。我们开始与团队讨论,并决定

.-用于PHP插件和实时演示

PHP报告Stlyle-我建议您访问实时演示。这将有更多帮助


这是一个非常健壮的工具。它为我们提供了所有的内部代码。

执行此任务实际上非常简单。所有框架都依赖于同一个库来生成代码覆盖率

如您所见,中的生成器已经支持合并函数(第335行)来合并不同的聚合。由于您是使用测试的团队的一员,我假设您可以轻松地稍微更改测试执行层,以在单个php进程中收集代码覆盖率,然后只合并它们。

来自语义设计的(我的公司)收集并合并来自任何

  • 框架
  • 测试集
  • 个别测试
  • 甚至是特别的手工测试
在运行一些测试集之后,我们的工具可以很容易地触发,将测试覆盖率向量转储到一个文件中;您需要稍微修改框架以调用

TCVDump();
当框架完成时,或者您可以通过触摸测试覆盖率工具添加的一个容易找到的特殊网页来调用TCVDDump()。每个这样的调用都会生成一个带有时间戳或用户命名的文件(例如,在框架或测试集之后),因此它们很容易区分

作为工具一部分的图形测试覆盖率显示将以交互方式选择和合并小型或大型文件集,以生成一致的整体,包括显示和摘要。它还将比较测试覆盖向量,以使人们能够确定一个测试集的覆盖是否包括/相交于另一个测试集,等等。 测试覆盖率显示组件还将导出覆盖率结果的文本或XML/HTML摘要

您甚至可以在不同的子系统上运行测试并组合它们。此测试覆盖率工具是PHP以外的许多语言的更大工具系列的一部分;在多语言应用程序系统上运行的测试也可以组合起来,以提供多语言应用程序覆盖范围的概述。

有一个用于此的工具:。它允许使用“合并”选项合并多个覆盖范围文件:

$ 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

你的答案现在看起来像是广告。你能提供更多的信息吗?它是如何回答这个问题的?你的屏幕截图都是Java,请告诉我们它能为PHP做些什么。回答你的问题只需打开我在这篇文章中添加的链接,或者转到这个链接:(演示)当你点击PHP时,它会显示所有组件的覆盖范围。声纳源是为所有技术设计的。