PHPUnit:smarty 模板的代码覆盖率

标签 php phpunit smarty code-coverage

使用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/

相关文章:

Laravel 5.5 PHPunit测试- "A facade root has not been set."

php - 聪明的foreach循环

php - Smarty - 获取发布/ session 变量

php - Smarty中如何获取COOKIE

php - 如何在此代码中添加大小限制?

PHPUnit - 创建 Mock 对象作为属性的 stub

unit-testing - 如何模拟 CakePHP 的单元测试行为

php - 如何在 zend 框架中使 group by 可选?

php - 编译一个 C 程序并运行它而不是 PHP 页面是否值得?

javascript - php中获取dropdownlist的值