Coder Social home page Coder Social logo

seldaek / phpspec-code-coverage Goto Github PK

View Code? Open in Web Editor NEW

This project forked from leanphp/phpspec-code-coverage

0.0 3.0 0.0 110 KB

Generate Code Coverage reports for PhpSpec tests

Home Page: https://packagist.org/packages/leanphp/phpspec-code-coverage

License: Other

PHP 100.00%

phpspec-code-coverage's Introduction

phpspec-code-coverage

License Latest Stable Version Total Downloads Scrutinizer Code Quality Travis AppVeyor

phpspec-code-coverage is a PhpSpec extension that generates Code Coverage reports for PhpSpec 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 henrikbjorn/phpspec-code-coverage package with compatible version numbers for stable releases.

phpspec-code-coverage console report phpspec-code-coverage HTML report

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/phpspec-code-coverage

Enable extension by editing phpspec.yml of your project:

extensions:
  LeanPHP\PhpSpec\CodeCoverage\CodeCoverageExtension: ~

This will sufficient to enable Code Coverage generation by using defaults provided by the extension. This extension supports various configuration options. For a fully annotated example configuration file check Configuration section.

Usage

If you execute phpspec run command, you will see code coverage generated in coverage directory (in html format):

$ bin/phpspec run

Note! When generating Code Coverage reports make sure PHP processes run via CLI are not memory limited (i.e. memory_limit set to -1 in /etc/php/cli/php.ini).

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 phpspec run

Note! PHP 7+ is required for code generation to work with phpdbg.

Configuration

You can see fully annotated phpspec.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.

# phpspec.yml
# ...
extensions:
  # ... other extensions ...
  # leanphp/phpspec-code-coverage
  LeanPHP\PhpSpec\CodeCoverage\CodeCoverageExtension:
    # Specify a list of formats in which code coverage report should be
    # generated.
    # Default: [html]
    format:
      - text
      - html
      #- clover
      #- php
      #- xml
    #
    # Specify output file/directory where code coverage report will be
    # generated. You can configure different output file/directory per
    # enabled format.
    # Default: coverage
    output:
      html: coverage
      #clover: coverage.xml
      #php: coverage.php
      #xml: coverage
    #
    # Should uncovered files be included in the reports?
    # Default: true
    #show_uncovered_files: true
    #
    # Set lower upper bound for code coverage
    # Default: 35
    #lower_upper_bound: 35
    #
    # Set high lower bound for code coverage
    # Default: 70
    #high_lower_bound: 70
    #
    # Whilelist directories for which code generation should be done
    # Default: [src, lib]
    #
    whitelist:
      - src
      - lib
    #
    # Whiltelist files for which code generation should be done
    # Default: empty
    #whilelist_files:
      #- app/bootstrap.php
      #- web/index.php
    #
    # Blacklist directories for which code generation should NOT be done
    #blacklist:
      #- src/legacy
    #
    # Blacklist files for which code generation should NOT be done
    #blacklist_files:
      #- lib/bootstrap.php

Options

  • format (optional) a list of formats in which code coverage should be generated. Can be one or many of: clover, php, text, html, xml (default html) Note: When using clover format option, you have to configure specific output file for the clover format (see below).
  • output (optional) sets an output file/directory where specific code coverage format will be generated. If you configure multiple formats, takes a hash of format:output (e.g. clover:coverage.xml) (default coverage)
  • show_uncovered_files (optional) for including uncovered files in coverage reports (default true)
  • lower_upper_bound (optional) sets lower upper bound for code coverage (default 35).
  • high_lower_bound (optional) sets high lower bound for code coverage (default 70)
  • 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 (default: test, vendor, spec)
  • blacklist_files takes an array of files to blacklist

Authors

Copyright (c) 2017-2018 ek9 [email protected] (https://ek9.co).

Copyright (c) 2013-2016 Henrik Bjornskov, for portions of code from henrikbjorn/phpspec-code-coverage project.

License

Licensed under MIT License.

phpspec-code-coverage's People

Contributors

andreybolonin avatar anyqax avatar davidgarciacat avatar digitalkaoz avatar ek9 avatar exu avatar fesor avatar firstrow avatar franmomu avatar gabiudrescu avatar grahamcampbell avatar henrikbjorn avatar iambrosi avatar kwisatz avatar lookitsatravis avatar mediagone avatar michaldudek avatar milan avatar nyholm avatar piorek avatar raphaelstolt avatar renanivo avatar rnijveld avatar robinvdvleuten avatar roukmoute avatar sam-burns avatar samsonasik avatar scrutinizer-auto-fixer avatar svemir avatar wimvds avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.