Analyses and reports testability issues of a php codebase
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

Build Status Code Climate Scrutinizer Code Quality Code Coverage Dependencies


Analyses and produces a report with testability issues of a php codebase.


PHP_Testability requires at least PHP 7.0 to run.


Add edsonmedina/php_testability as a dependency to your project's composer.json file if you use Composer to manage the dependencies of your project.

    "require-dev": {
        "edsonmedina/php_testability": "dev-master"

And run composer update.

Or alternatively, just run:

composer require edsonmedina/php_testability "dev-master"


Analyse the current directory and generate an HTML report into report/

vendor/bin/testability . -o report

Exclude some directories

vendor/bin/testability . -x vendor,tmp,upload,config -o report

Check all the available options.

vendor/bin/testability --help


Open report/index.html on your browser. You shoule see something like this:


If you click on a file with issues, it'll show you a code browser and will highlight the lines with issues.


These are issues that hinder testability, such as:

  • references to global variables, super globals, etc
  • calls to functions that can't be mocked (like static methods or global functions)
  • new instances of objects (tight coupling - can't be mocked/injected)
  • ...and much more

Kudos to the brilliant PHP-Parser (by nikic) on which PHP_Testability relies heavily.