【问题标题】:PHPCodeSniffer HTML Report?PHPCodeSniffer HTML 报告?
【发布时间】:2011-12-29 06:44:31
【问题描述】:

PHPCodeSniffer 是否生成 HTML 报告?

如果没有?怎么样?

目前,我可以运行 PHPCodeSniffer,但它只生成 XML 文件并在终端中显示结果。

如何在 phpunit 中生成 HTML 报告,如覆盖率和单元测试报告。

目前我使用 PHPCheckStyle,因为它会生成 html 报告,但我也想尝试 PHPCodeSniffer 以了解哪个最好。

【问题讨论】:

  • 抱歉这个问题。我的意思是如果 PHPCodeSniffer 不生成 HTML 报告,我们怎么做才能生成 HTML 报告,有没有办法?还是我会等待支持该功能的未来版本...对于这个无效的问题,我深表歉意。
  • 这实际上是 stackoverflow.com/questions/1831535/… 的副本,它对这个问题有真正的答案。

标签: php reporting codesniffer


【解决方案1】:

另一种解决方案(但可能不是最简单的)是使用提供 PHP 代码嗅探器集成的持续集成系统

例如,phpUnderControl 提供了一个很好的界面来查看报告。

【讨论】:

    【解决方案2】:

    尚未提供 HTML 报告。但是,有一种解决方法可以完成工作。

    您可以将报告导出为 XML 并使用 DOM Parser 读取数据并自行生成 HTML 版本。 Here is a quick tutorial to get you started.

    【讨论】:

      【解决方案3】:

      编写自己的报告实际上很简单。

      如果您从 CLI 运行,您可以使用独特的方法实现您自己的报告类,并从命令 ligne 调用它。对于名为 Xxx 的报告:

      class PHP_CodeSniffer_Reports_Xxx implements PHP_CodeSniffer_Report
      { 
      
        /**
         * Prints all errors and warnings for each file processed.
         *
         * Errors and warnings are displayed together, grouped by file.
         *
         * @param array   $report      Prepared report.
         * @param boolean $showSources Show sources?
         * @param int     $width       Maximum allowed lne width.
         * @param boolean $toScreen    Is the report being printed to screen?
         *
         * @return string
         */
        public function generate(
            $report,
            $showSources=false,
            $width=80,
            $toScreen=true
        ) {
           ...
        }
      }
      

      如果您从 Web 服务器运行,PHP_CodeSniffer.getFilesErrors() 方法会为您提供一系列不错的错误,以及生成报告所需的所有内容。

      【讨论】:

        【解决方案4】:

        HTML 报告对我有用。只需根据 --help 使用:

        phpcs src/AppBundle --generator=HTML > index.html
        

        在 index.html 中显示结果

        【讨论】:

        • Generator 用于强制创建规则文档,而不是用于生成 HTML 报告 - 请参阅文档:github.com/squizlabs/PHP_CodeSniffer/wiki/Usage 使用“HTML”、“Markdown”或“Text”生成器(强制生成文档而不是检查)您现在可以使用报告,但它不支持 HTML - 打印“full”、“xml”、“checkstyle”、“csv”、“json”、“junit”、“emacs” ", "source", "summary", "diff" "svnblame", "gitblame", "hgblame" 或 "notifysend" 报告
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-02-17
        • 2015-06-21
        • 2012-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-16
        相关资源
        最近更新 更多