PHP 中的死代码检测 [已关闭]

我有一个项目,代码非常混乱 - 这里和那里有很多重复和死代码。

前段时间,单元测试的代码覆盖率为零,但现在我们正试图以T.D.的方式编写所有新代码,并通过单元测试覆盖“旧”代码来降低技术债务(测试最后技术)。

业务逻辑的复杂性相当高,有时没有人可以回答是否使用了某些方法。

如何找到这个死代码方法?广泛的日志记录?更高的测试覆盖率?(这并不容易,因为客户希望新功能出来)


答案 1

xdebug的代码覆盖率工具允许您测试实际正在执行哪些代码行,而无需在所有函数/方法中放置跟踪语句。

例:

<?php
    xdebug_start_code_coverage();

    function a($a) {
        echo $a * 2.5;
    }

    function b($count) {
        for ($i = 0; $i < $count; $i++) {
            a($i + 0.17);
        }
    }

    b(6);
    b(10);

    var_dump(xdebug_get_code_coverage());  // array '/path/file.php' => array line_number => int 1 or 0.
?>  

答案 2

现在有点晚了,但是PHPDCD声称以静态方式执行此操作,这应该会给你一个比使用xprof / xdebug分析实际代码执行更翔实的结果。


推荐