使用PHPUnit要运行测试,我希望获得我的 Smarty 的代码覆盖率指标模板。
不幸的是,这并不是开箱即用的,因为 Smarty 将模板编译成 .php
文件,因此模板本身没有覆盖率信息。查看编译的 .php 文件覆盖率并不好,因为编译的文件几乎不可读。
如何获取带有覆盖率信息注释的原始模板代码?
我想要一个与 PHPUnit's PHP_CodeCoverage 集成的工具,因为我可以在生成的 HTML 文件中看到覆盖范围。但任何其他解决方案也足够了:)
最佳答案
本质上,您正在使用一种"new"编程语言(模板),但您没有覆盖工具。您已经发现您需要模板上的覆盖率数据,是的,这必须传递到已编译的 PHP 文件,以便您可以运行/测试并获取覆盖率数据。
我不知道临时解决方案,但这里概述了任何语言的通用解决方案:
Branch Coverage for Arbitrary Languages Made Easy .
我公司建了family of test coverage tools基于这个想法。这些工具可以互操作;如果您从 Java 与(支持 JNI 的调用)C 代码的混合系统收集测试覆盖率数据,使用 Java 和 C 测试覆盖率工具,它们也可以明智地一起显示 Java 和 C 代码的覆盖率提供覆盖数据统计。
这个系列中已经有一个 PHP 测试覆盖率工具。如果有一个 Smarty 覆盖率工具,它的输出可以直接与 PHP 覆盖率的输出相结合,以同时获得 PHP 和 Smarty 模板的覆盖率。
关于PHPUnit:smarty 模板的代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7350104/