edsonmedina/php_testability

此包已被废弃,不再维护。未建议替代包。

分析php代码库的可测试性问题

dev-master 2019-09-12 00:44 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:40:11 UTC


README

Build Status Code Climate Scrutinizer Code Quality Code Coverage Dependencies

PHP_Testability

分析和生成php代码库的可测试性问题报告。

安装

PHP_Testability至少需要PHP 7.0才能运行。

Composer

如果使用Composer管理项目依赖,请在项目的composer.json文件中将edsonmedina/php_testability添加为依赖。

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

然后运行composer update

或者,也可以直接运行

composer require edsonmedina/php_testability "dev-master"

用法

分析当前目录并生成HTML报告到report/

vendor/bin/testability . -o report

排除某些目录

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

检查所有可用选项。

vendor/bin/testability --help

结果

在浏览器中打开report/index.html。你应该会看到以下内容

Screenshot

如果你点击有问题的文件,它会显示代码浏览器并突出显示有问题的一行。

Screenshot

这些问题阻碍了可测试性,例如

  • 全局变量、超级全局变量等的引用
  • 无法模拟的函数的调用(如静态方法或全局函数)
  • 对象的new实例(紧耦合 - 不能模拟/注入)
  • ...等等

感谢nikic的PHP-Parser(nikic),PHP_Testability在很大程度上依赖于它。