qafoo/quality-analyzer

代码审查助手

安装数: 15,775

依赖项: 0

建议者: 0

安全: 0

星标: 494

关注者: 24

分支: 31

开放问题: 13

语言:JavaScript

dev-master 2019-12-04 07:45 UTC

This package is auto-updated.

Last update: 2024-09-04 18:01:30 UTC


README

Travis Status

此软件是一款可视化指标和源代码的工具。我们与客户一起使用此软件进行代码审查。

Screeenshot

运行分析器需要相应的PHP工具,这些工具可以通过composer安装,并且可以使用便捷命令运行。您也可以在常规构建过程中运行这些工具。

为了显示指标,使用的是纯JavaScript / CSS堆栈,因此您可以在Jenkins等持续集成工具内构建和提供结果。这听起来可能有些奇怪,但即使对于包含80万行PHP代码的软件也工作得非常好。

如果您想改进、增强软件或只是修复一些烦人的错误,我们非常欢迎您这样做。不过,涉及到的技术堆栈并不简单(PHP、Symfony2、Ant、Babel、D3、Grunt、Jasmine、Karma、SASS、PhantomJs、React、React-Router、Underscore、Webpack)。适用于与此项目任何互动的《行为准则》适用——如果您觉得它被违反了,请与Kore联系。

设置

要使用此软件,涉及的步骤非常少。唯一的要求是当前版本的PHP。

运行以下命令以安装软件

git clone https://github.com/Qafoo/QualityAnalyzer.git
cd QualityAnalyzer
composer install

在下一步中,您可以使用类似以下内容分析一些软件

bin/analyze analyze src/php/

有关命令的更多信息,请参阅“用法”。此命令的结果可以在data/文件夹中找到。

最后,您可以启动web服务器以查看结果

bin/analyze serve

四处浏览并享受数据吧!

用法

您开始分析某个项目或为工具提供现有分析文件的路径,例如代码覆盖率报告

bin/analyze analyze /path/to/source

使用默认命令,工具将分析源代码本身。对于PHPMD或PDepend等工具,这非常有意义,因为这些工具已经知道每个工具应使用哪些选项。

有一些报告我们无法自行生成,例如测试中的代码覆盖率。您可以告诉工具在哪里可以找到某些文件,以确保它们可用并可使用

bin/analyze \
    --coverage=/path/to/clover.xml \
    --tests=/path/to/junit.xml \
    analyze /path/to/source

您还可以指定为所有其他工具已生成的文件。但如果某些报告格式错误或某些选项缺失,可视化可能会表现得异常。我们尚未正确验证这一点。

要查看HTML格式的报告,请运行bin/analyze bundle /path/for/generated/html,然后用浏览器打开/path/for/generated/html/index.html。

忽略子目录

您可能还想告诉工具哪些目录要忽略。如果您在源目录中有(大型)库,这一点尤为重要——您不想分析这些库。为此,您可以使用--exclude选项。

bin/analyze \
    --coverage=/path/to/clover.xml \
    --tests=/path/to/junit.xml \
    --exclude=libraries,vendor \
    analyze /path/to/source

分析器完成后,使用bin/analyze serve或类似方式使用浏览器访问index.html并享受结果可视化。

排除分析器

您可能还希望故意排除某些分析器对代码的运行,例如,如果您不想分析您的git使用。为此,您可以使用--exclude_analyzers选项。

bin/analyze \
    --exclude_analyzers=git,gitDetailed \
    analyze /path/to/source

要获取所有可用分析器的列表,请运行

bin/analyze list:analyzers

自定义工具

如果您想自定义工具执行,您始终可以自己运行所有工具并将现有结果文件传递给analyze命令。一个执行此操作的自定义ant构建文件示例可以在这里找到:src/examples/customize.xmlsrc/examples/parallel.xml

传递您自定义结果的参数,这些参数将不通过分析器命令本身运行工具是

--pdepend=PDEPEND            Path to PDepend summary XML file
--dependencies=DEPENDENCIES  Path to PDepend dependencies XML file
--phpmd=PHPMD                Path to mess detector (PMD / PHPMD) XML file
--checkstyle=CHECKSTYLE      Path to checkstyle violations (PHP Code Sniffer) XML file
--cpd=CPD                    Path to C&P violations (PHP Copy Paste Detector) XML file
--phploc=PHPLOC              Path to PHPLoc result XML file

请随意通过创建pull request提供使用不同构建环境的示例。

构建与开发软件

质量分析器的构建系统基于ant。您必须安装ant >= 1.8。为了使用它,您首先应该初始化包含构建公用的子模块

git submodule update --init

为了开发质量分析器,我们严重依赖于JavaScript构建栈。为此,您必须安装node和npm。所有其他必需的工具将由构建工具安装。要将项目设置为开发模式,请运行

echo env=dev > environment.local

只要您不再从environment.local文件中删除此行或将它改为prod,所有开发工具和库都将安装并使用。这也意味着JavaScript和CSS将通过诸如ant serve之类的命令进行编译。

运行测试

您可以通过执行ant来运行测试。

它将通过Karma & Jasmine为JavaScript栈的部分运行测试,并通过PHPUnit测试PHP栈(一旦我们有)。

构建CSS & JavaScript

项目使用ECMAScript 6并使用Babel进行转译。因此,我们在客户端工作时需要更新bundle.js。这在进行项目准备时完成,但也可以通过以下命令持续执行

ant watch

这还将编译项目中的SASS和Bootstrap文件到单个CSS文件中。

尝试项目

如果您想尝试项目,您可以使用任何Web服务器托管根目录。Web服务器应将所有未知资源的请求重写到index.html文件,该文件使用JavaScript进行路由。

为了方便起见,我们包含了使用PHP内置Web服务器的有效服务器设置。您可以使用以下命令启动它

ant serve

生成捆绑文件

以下任务确保捆绑文件已生成、压缩和提交

ant deploy

使用此命令更新分发文件。

它将首先运行package任务(当然是在运行所有测试之后)。如果assets/文件夹中有更改,则这些更改将被提交,然后将当前的开发状态推送到。