This package is abandoned and no longer maintained. No replacement package was suggested.

Integrates CodeCoverage with PhpSpec

3.0.1 2016-08-02 06:07 UTC


DEPRECATED: CodeCoverage should not be used with spec testing in order to see how good your tests are. For that reason, and because I don't use it myself, this library is deprecated and will not receive any updates etc. For a maintained fork, you can check leanphp/phpspec-code-coverage.

Install with Composer:

composer require --dev henrikbjorn/phpspec-code-coverage

Enable it in your phpspec.yml file:

    - PhpSpecCodeCoverage\CodeCoverageExtension

Now run your specs with the normal phpspec run and voilà your code coverage will be available in coverage.

Configuration Options

It is possible to control a bit out how the code coverage is done through phpspec.yml. This is done by adding a hash of options to the extension key.

  • whitelist takes an array of directories to whitelist (default: lib, src).
  • whitelist_files takes an array of files to whitelist (default: none).
  • blacklist takes an array of directories to blacklist
  • blacklist_files takes an array of files to blacklist
  • format (optional) could be one or many of: clover, php, text, html (default html)
  • output takes a location relative to the place you are running phpspec run (default: coverage). If you configure multiple formats, takes a hash of format:output e.g.
      - html
      - clover
      html: coverage
      clover: coverage.xml
  • show_uncovered_files for including uncovered files in coverage reports (default true)
  • lower_upper_bound for coverage (default 35)
  • high_lower_bound for coverage (default 70)

Note: If the clover format option requires you to also set an output location!

Running with phpdbg (PHP 7.x and up)

For faster execution, run phpspec with phpdbg instead of xdebug:

phpdbg -qrr phpspec run

Note: The code coverage extension only works with phpdbg if you're using PHP 7. In PHP 5.6, phpdbg is missing the phpdbg_start_oplog function which is required to generate code coverage.