gergelyrozsas/clover-diff

0.1.0 2019-10-05 14:59 UTC

This package is auto-updated.

Last update: 2024-09-06 01:38:50 UTC


README

Latest Stable Version Build Status Code Coverage

GergelyRozsas\CloverDiff

GergelyRozsas\CloverDiff 是一个库,提供了处理和渲染功能,用于比较从 Clover XML 文件中提取的代码覆盖率信息。

安装

此库可以通过 Composer 安装。

composer require gergelyrozsas/clover-diff

使用 GergelyRozsas\CloverDiff API

<?php

use GergelyRozsas\CloverDiff\Factory;
use GergelyRozsas\CloverDiff\Node\Iterator\RecursiveNodeIterator;

$diff = Factory::getCloverDiff();
$report = $diff->compare([
  '/path/to/clover1.xml',
  '/path/to/clover2.xml',
]);

$iterator = new \RecursiveIteratorIterator(
  new RecursiveNodeIterator($report),
  \RecursiveIteratorIterator::SELF_FIRST
); 

/** @var \GergelyRozsas\CloverDiff\Node\NodeInterface $node */
foreach ($iterator as $node) {
  foreach ($node->getRevisions() as $revision) {
    echo \vsprintf("Coverage for %s on %s was %.2f%%.\n", [
      \implode('/', $node->getPath()),
      \date('Y-m-d H:i:s', $revision->getTimestamp()),
      \round(100 * $revision->getCoveredElements() / $revision->getElements()),
    ]);
  }
}

如果已安装 symfony/filesystem 库,还可以使用内置的 HTML 报告生成器。

<?php

use GergelyRozsas\CloverDiff\Factory;

$diff = Factory::getCloverDiff();
$report = $diff->compare([
  '/path/to/clover1.xml',
  '/path/to/clover2.xml',
]);

$generator = Factory::getHtmlReport();
$options = $generator->process($report);

echo "The report was generated into the '{$options['target']}' directory.\n";

鸣谢

HTML 报告的概念借鉴自 https://github.com/sebastianbergmann/php-code-coverage