php - PHP中的死代码检测

标签 php refactoring code-coverage legacy-code

<分区>

我有一个代码非常困惑的项目 - 到处都是重复和死代码。

前段时间单元测试的代码覆盖率为零,但现在我们正尝试在 T.D.D 中编写所有新代码。通过单元测试覆盖“旧”代码(test-last 技术)来降低技术债务。

业务逻辑的复杂度很高,有些方法用了没有用,有时没人能回答。

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

最佳答案

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.
?>  

关于php - PHP中的死代码检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1778683/

相关文章:

c# - 使用泛型进行重构练习

c++ - 语法繁重的多个 lambda 包装器的替代方案——如何避免样板代码?

ruby - 我怎样才能更多地重构这个 ruby​​ 代码?

code-coverage - 从 Cypress.io 覆盖率报告中排除文件

php - 保存/恢复 PHP 的 rand() 的状态

php - 用于 Ruby、PHP 的交互式控制台

php - 扩展包含的类时出现 fatal error

xcode - undefined symbol ___llvm_profile_runtime

testing - 缺少 else 的分支覆盖

php - Laravel 自定义模型类 - 字段没有默认值