Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

leanphp/behat-code-coverage

Repository files navigation

behat-code-coverage

License Latest Stable Version Total Downloads Travis AppVeyor Pre Release

behat-code-coverage is a Behat extension that generates Code Coverage reports for Behat tests.

Generating Code Coverage reports allows you to to analyze which parts of your codebase are tested and how well. However, Code Coverage alone should NOT be used as a single metric defining how good your tests are.

Note! This is a maintained fork of vipsoft/code-coverage-extension, including codebase for vipsoft/code-coverage-common package with compatible version numbers for stable releases.

Requirements

Change Log

Please see CHANGELOG.md for information on recent changes.

Install

Install this package as a development dependency in your project:

$ composer require --dev leanphp/behat-code-coverage

Enable extension by editing behat.yml of your project:

default:
 extensions:
 LeanPHP\Behat\CodeCoverage\Extension:
 drivers:
 - local
 filter:
 whitelist:
 include:
 directories:
 'src': ~
 report:
 format: html
 options:
 target: build/behat-coverage

This will sufficient to enable Code Coverage generation in html format in build/behat-coverage directory. This extension supports various Configuration options. For a fully annotated example configuration file check Configuration section.

Usage

If you execute bin/behat command, you will see code coverage generated in target (i.e. build/behat-coverage) directory (in html format):

$ bin/behat

Running with phpdbg

This extension now supports phpdbg, which results in faster execution when using more recent versions of PHP. Run phpspec via phpdbg:

$ phpdbg -qrr bin/behat run

Configuration

You can see fully annotated behat.yml example file below, which can be used as a starting point to further customize the defaults of the extension. The configuration file below has all of the [Configuration Options](#Configuration Options).

# behat.yml
# ...
default:
 extensions:
 LeanPHP\Behat\CodeCoverage\Extension:
 # http auth (optional)
 auth: ~
 # select which driver to use when gatherig coverage data
 drivers:
 - local # local Xdebug driver
 # filter options
 filter:
 forceCoversAnnotation: false
 mapTestClassNameToCoveredClassName: false
 whitelist:
 addUncoveredFilesFromWhitelist: true
 processUncoveredFilesFromWhitelist: false
 include:
 directories:
 'src': ~
 'tests':
 suffix: '.php'
# files:
# - script1.php
# - script2.php
# exclude:
# directories:
# 'vendor': ~
# 'path/to/dir':
# 'suffix': '.php'
# 'prefix': 'Test'
# files:
# - tests/bootstrap.php
 # report configuration
 report:
 # report format (html, clover, php, text)
 format: html
 # report options
 options:
 target: build/behat-coverage/html

Configuration Options

  • auth - HTTP authentication options (optional).
  • create (method / path) - override options for create method:
    • method - specify a method (default: POST)
    • path - specify path (default: /)
  • read (method / path) - override options (method and path) for read method.
    • method - specify a method (default: GET)
    • path - specify path (default: /)
  • delete (method / path) - override options (method and path) for delete method.
    • method - specify a method (default: DELETE)
    • path - specify path (default: /)
  • drivers - a list of drivers for gathering code coverage data:
    • local - local Xdebug driver (default).
    • remote - remote Xdebug driver (disabled by default).
  • filter - various filter options:
    • forceCoversAnnotation - (default: false)
    • mapTestClassNameToCoveredClassName - (default: false)
    • whiltelist - whitelist specific options:
      • addUncoveredFilesFromWhiltelist - (default: true)
      • processUncoveredFilesFromWhitelist - (default: false)
      • include - a list of files or directories to include in whitelist:
        • directories - key containing whitelisted directories to include.
          • suffix - suffix for files to be included (default: '.php')
          • prefix - prefix of files to be included (default: '') (optional)
        • files - a list containing whitelisted files to include.
      • exclude - a list of files or directories to exclude from whitelist:
        • directories - key containing whitelisted directories to exclude.
          • suffix - suffix for files to be included (default: '.php')
          • prefix - prefix of files to be included (default: '') (optional)
        • files - key containing whitelisted files to exclude.
  • report - reporter options:
    • format - specify report format (html, clover, php, text)
    • options - format options:
      • target - target/output directory

Authors

Copyright (c) 2017 ek9 dev@ek9.co (https://ek9.co).

Copyright (c) 2013-2016 Anthon Pang, Konstantin Kudryashov everzet and various contributors for portions of code from vipsoft/code-coverage-extension and vipsoft/code-coverage-common projects.

License

Licensed under BSD-2-Clause License.

AltStyle によって変換されたページ (->オリジナル) /