当我运行我的PHPUnit测试时,Xdebug会生成一个很好的代码覆盖率报告,它会准确显示每个PHP文件中每行代码的执行次数。
我想在我的网站上获得相同的报告,例如,正常使用一周,以便我可以在我的网站上找到可能不再使用的PHP行。而不是单元测试运行我的PHP代码,它将是Web服务器,但我应该能够得到相同的报告,对吧?
如何设置Xdebug以在实际网站上收集数据并生成代码覆盖率报告?
答案 0 :(得分:0)
我会回答我自己的问题。 Xdebug提供xdebug_start_code_coverage()
调用以开始收集代码覆盖率信息,并xdebug_get_code_coverage()
调用以检索有关所涵盖代码的信息。这很容易适用于单元测试,因为您通常只关心在受控情况下运行一系列测试所涵盖的代码。 (打开覆盖范围,运行测试,然后您就可以获得覆盖率结果。)但是对于Web服务器应用程序上的任意命中,您可能需要在preDispatch中启动代码覆盖,然后使用postDispatch将统计信息写入数据库(或以其他方式存储它们),以便以后可以将结果整理为报告。这不是由Xdebug处理的。
Xdebug可以收集cachegrind格式的分析信息,因此我会看看是否可以使用它来帮助查找尚未调用的代码。