peridot-php/peridot-code-coverage-reporters

Peridot PHP 的代码覆盖率报告工具。

3.0.0 2017-09-18 09:26 UTC

This package is not auto-updated.

Last update: 2024-09-14 14:19:26 UTC


README

Packagist Version Build Status Scrutinizer Code Quality Codecov Coverage Gitter Chat

安装

将此包作为依赖项添加

composer require --dev peridot-php/peridot-code-coverage-reporters

然后在您的 peridot.php 配置中注册报告器

use Evenement\EventEmitterInterface;
use Peridot\Reporter\CodeCoverage\CodeCoverageReporter;
use Peridot\Reporter\CodeCoverageReporters;

return function (EventEmitterInterface $emitter) {
    $coverage = new CodeCoverageReporters($emitter);
    $coverage->register();

    $emitter->on('code-coverage.start', function (CodeCoverageReporter $reporter) {
        $reporter->addDirectoryToWhitelist(__DIR__ . '/src');
    });
};

用法

此包提供几个 Peridot 报告器,可以通过 --reporter 选项使用

  • html-code-coverage
  • text-code-coverage
  • clover-code-coverage
  • xml-code-coverage
  • crap4j-code-coverage
  • php-code-coverage

这些报告器都由 php-code-coverage 驱动,生成覆盖率报告需要使用 phpdbg 可执行文件或 xdebug PHP 扩展。

使用 phpdbg

在可用的情况下,通常推荐使用 phpdbg 以获得更快的覆盖率报告。大多数系统级包管理工具都应能够轻松安装一个版本的 phpdbg。例如,在 Homebrew 中,可以像这样安装 phpdbg

brew tap homebrew/homebrew-php && brew install php71 --with-phpdbg

安装后,可以在执行脚本(包括 peridot 二进制文件)时使用 phpdbg -qrr 代替 php,从而生成代码覆盖率

phpdbr -qrr vendor/bin/peridot --reporter spec --reporter html-code-coverage

上述命令将在套件运行时打印 spec-style 输出,并在套件完成后生成 HTML 覆盖率报告。

使用 xdebug

由于与 phpdbg 相比性能显著下降,不再推荐使用 xdebug。如果无法使用 phpdbg,只需确保在运行 peridot 时已启用 xdebug 扩展即可。

vendor/bin/peridot --reporter spec --reporter html-code-coverage

上述命令将在套件运行时打印 spec-style 输出,并在套件完成后生成 HTML 覆盖率报告。