使用PHPUnit运行测试,我很乐意为我的Smarty模板提供代码覆盖率指标。
不幸的是,这不是开箱即用的,因为Smarty将模板编译成.php
个文件,因此模板本身没有覆盖信息。查看已编译的.php
文件覆盖率并不好,因为编译的文件几乎不可读。
如何使用覆盖率信息注释原始模板代码?
我想要一个与PHPUnit's PHP_CodeCoverage集成的工具,因为我可以在其生成的HTML文件中看到覆盖范围。但任何其他解决方案也足够了:))
答案 0 :(得分:3)
从本质上讲,您使用的是没有覆盖工具的“新”编程语言(模板)。您已经观察到您需要模板上的覆盖数据,是的,必须通过已编译的PHP文件,以便您可以运行/测试并获取覆盖数据。
我不知道临时解决方案,但是这里概述了任何语言的一般解决方案:
Branch Coverage for Arbitrary Languages Made Easy
我的公司根据这个想法构建family of test coverage tools。这些工具可以互操作;如果您从Java的混合系统(使用JNI启用的调用)C代码收集测试覆盖率数据,使用Java和C测试覆盖率工具,他们可以合理地同时显示Java和C代码的覆盖范围提供覆盖数据统计。
此系列中已有PHP测试覆盖率工具。如果有一个Smarty-coverage工具,它的输出可以直接与PHP的覆盖范围相结合,以便同时覆盖PHP和Smarty模板。