nathansbraten/quality-analyzer

代码审查助手

此软件包的官方仓库似乎已不存在,因此已冻结此软件包。

安装: 6,259

依赖项: 0

建议者: 0

安全: 0

星级: 0

关注者: 1

分支: 33

语言:JavaScript

dev-master 2018-02-22 07:25 UTC

This package is not auto-updated.

Last update: 2022-03-26 04:39:44 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

请自由提供通过创建拉取请求使用不同构建环境的示例。

构建和开发软件

质量分析器的构建系统基于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/文件夹中有更改,这些更改将被提交,然后当前的开发状态将被推送。