leanphp / behat-code-coverage
Generate Code Coverage reports for Behat tests
Installs: 354 196
Dependents: 2
Suggesters: 0
Security: 0
Stars: 50
Watchers: 7
Forks: 23
Open Issues: 13
Requires
- php: >=5.6
- behat/behat: ^3.0
- guzzlehttp/guzzle: ^6.0
- phpunit/php-code-coverage: ^6.0
- symfony/config: ^2.3||^3.0||^4.0
- symfony/dependency-injection: ^2.2||^3.0||^4.0
- symfony/expression-language: ^2.2||^3.0||^4.0
- symfony/http-foundation: ^2.3||^3.0||^4.0
- symfony/http-kernel: ^2.3||^3.0||^4.0
Requires (Dev)
- escapestudios/symfony2-coding-standard: ^3.1
- mikey179/vfsstream: 1.6.*
- phpunit/phpunit: ^7.0
- squizlabs/php_codesniffer: ^3.2
Suggests
- ext-phpdbg: PHPDBG extension allows you to collect coverage faster than Xdebug (PHP 7.0+)
- ext-xdebug: Xdebug extension is required to collect coverage via Xdebug driver and run tests
This package is not auto-updated.
Last update: 2024-10-28 22:39:48 UTC
README
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.