larapkg / testing

测试和代码标准模块

dev-master 2021-10-18 23:57 UTC

This package is auto-updated.

Last update: 2024-09-19 06:36:51 UTC


README

此模块配置为使包能够访问用于包开发的统一编码标准和测试工具,例如用于包单元测试的特性,以及模拟事物的能力。

它还允许CI/CD流水线根据此包中设置的标准运行,因为失败将产生错误退出代码,这将停止您的流水线。

安装

要安装此包,请简单执行 composer require larapkg/testing

用法

在您的包 composer.json 中,将以下内容添加到文件末尾,因为测试二进制文件将在安装时复制到您的 vendor/bin 目录。

"scripts": [
  "testing": "./vendor/bin/testing"
]

现在,您可以在包根目录中运行 composer testing 命令来运行测试工具。

使用上述命令将运行一个控制台实例,其中包含用于检查标准、修复编码标准问题和运行静态分析的可用命令。

如果您正在为提交给LaraPKG组织而工作,则需要此模块,如果它尚未存在于您正在工作的存储库中,因为PR将无法没有它进行合并。

如果您不使用此包与LaraPKG包一起使用,那么在开发它们时建议您分支此存储库并将您的单元特性等添加到您自己的版本中。

可用命令

该包提供了一些命令

代码标准

  • cs:all
  • cs:code_sniffer
  • cs:psalm
  • cs:mess_detector
  • cs:loc

修复工具

  • fix:all
  • fix:code_beautifier
  • fix:psalm

单元测试

  • test

实用工具

  • test:copy

CS:ALL

composer testing cs:all 命令将运行上述所有代码标准命令。

CS:CODE_SNIFFER

composer testing cs:code_sniffer 命令将分别运行代码检查标准检查,在LaraPKG中,我们使用经过轻微修改的WebImpress编码标准,这些标准可以在存储库底部的 ruleset.xml 文件中找到。 Web Impress - Code Sniffer

当命令运行时,如果发现违规规则,它将显示在违规规则下方。

CS:PSALM

当运行 composer testing cs:psalm 命令时,将对包进行静态分析测试。我们使用最高级别的警报,试图将最高质量的代码放入存储库,其中不包含错误。 Psalm

CS:MESS_DETECTOR

Mess Detector composer testing cs:mess_detector 是一种用于清除不良代码的工具,极大提高了实践并减少了不可预见的设计缺陷,同时鼓励最佳实践。我们为Mess Detector使用几个规则集

  • codesize
  • controversial
  • design
  • cleancode

我们认为这组规则可以产生良好的代码。

注意:如果在使用此工具时在大代码库中,您可能会发现某些实践太大而无法处理,建议首先修复所有内容,然后创建一个基线文件以忽略您希望保留的违规行为。请参阅Mess Detector网站以获取有关此内容的建议。 Mess Detector

CS:LOC

composer testing cs:loc PhpLoc 是一种用于快速测量PHP项目大小和结构的工具。

它将为您的代码库的复杂性提供分析。 PhpLoc

修复全部

使用 composer testing fix:all 命令将运行所有修复工具,请小心使用!

修复:代码美化器

使用 composer testing fix:code_beautifier 命令将运行代码嗅探器配套的修复工具,该工具使用与代码嗅探器相同的标准来分析您的代码库,因此运行应该是相当安全的。 Code Sniffer

修复:Psalter

使用 composer testing fix:psalter 命令运行 Psalms 配套的修复工具,虽然这相对安全,因为我们限制了其修复的内容,但它“可能”会产生更多的工作量,因此如果您使用它,请在运行 cs 命令之前使用,这样您就不会知道它是否为您产生了更多的工作。 Psalm

测试

使用 composer testing test 命令将启动 PHPUnit 来运行您的单元测试,由于此包是用于与 Lumen 或 Laravel 的包一起使用,我们还引入了 orchestra/testbench Testbench

测试:复制

composer testing test:copy 命令是一个实用命令,您不需要手动运行。当运行 test 命令时,如果您在代码库的根目录中没有 phpunit.xml,此命令将运行以使用我们的基本模板添加它。

以上是包内命令的总结,您应该会发现这将帮助您在代码库中实现高标准的专业性、质量和可靠性。祝您好运!