vstelmakh / covelyzer
用于分析 clover 格式的 PHPUnit 测试覆盖率报告的工具
Requires
- php: ^7.1 || ^8
- ext-dom: *
- ext-libxml: *
- symfony/console: ^3.2 || ^4 || ^5
Requires (Dev)
- phpstan/phpstan: ^0.12
- phpunit/phpunit: ^7.5.3 || ^8 || ^9
- squizlabs/php_codesniffer: ^3.5
Suggests
- phpunit/phpunit: Allows run tests and generate coverage report
This package is auto-updated.
Last update: 2024-09-16 02:43:00 UTC
README
Covelyzer - 用于分析 clover (XML) 格式的 PHPUnit 测试覆盖率报告的 PHP 控制台工具。Covelyzer 将覆盖率指标直接集成到工作流程中,强制开发人员编写测试,并禁止提交未覆盖的代码。
亮点
- 在控制台运行
- 易于集成
- 灵活的配置
- 本地和 CI 环境中相同的配置
- 不依赖于第三方服务
安装
使用 Composer 安装最新版本
composer require --dev vstelmakh/covelyzer
用法
在开始之前,使用选项运行测试,以生成 XML 格式的覆盖率报告。请参阅相应的 PHPUnit 文档参考 代码覆盖率分析 和 Covelyzer phpunit.xml、composer.json 脚本部分作为示例。
使用 Xdebug 运行带有 XML 覆盖率的测试示例
vendor/bin/phpunit --dump-xdebug-filter var/xdebug-filter.php && \
vendor/bin/phpunit --prepend var/xdebug-filter.php --coverage-clover var/coverage.xml --whitelist src
使用 默认配置 运行 Covelyzer
vendor/bin/covelyzer var/coverage.xml
要指定附加配置,请参阅 配置。
配置
配置定义在位于项目根目录下(vendor 目录所在位置)的 covelyzer.xml
中。或者可以通过 -c | --config
命令选项覆盖配置路径
vendor/bin/covelyzer var/coverage.xml -c path/to/covelyzer.xml
如果没有提供配置文件,则使用 默认配置。
示例配置
<?xml version="1.0" encoding="UTF-8" ?> <covelyzer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/vstelmakh/covelyzer/resources/config.xsd" timezone="Europe/Berlin" > <project minCoverage="100"/> <class minCoverage="100"/> </covelyzer>
<covelyzer>
元素
配置根元素。
timezone
属性
用于显示时间戳的时间区域。
- 使用:
可选
- 类型:
字符串
(见:php 时间区域) - 命令选项:可以通过
--timezone
命令选项定义/覆盖
<project>
元素
定义项目覆盖率报告的配置。如果定义了项目覆盖率报告,则将渲染报告。
- 父元素:
<covelyzer>
- 使用:
可选
minCoverage
属性
最小覆盖率值。如果项目覆盖率较低,则报告将失败。
- 使用:
必需
- 类型:
浮点数
(最小:0,最大:100)
<class>
元素
定义类覆盖率报告的配置。如果定义了类覆盖率报告,则将渲染报告。
- 父元素:
<covelyzer>
- 使用:
可选
minCoverage
属性
最小覆盖率值。如果任何类的覆盖率较低,则报告将失败。
- 使用:
必需
- 类型:
浮点数
(最小:0,最大:100)
技巧与技巧
使用帮助选项
使用 -h | --help
命令选项来显示 Covelyzer 帮助数据。它包含所有可用参数、选项和用法示例。
vendor/bin/covelyzer --help
忽略代码块
Covelyzer 将分析由 PHPUnit 生成的完整报告。在某些情况下,您可能希望忽略某些代码部分,以便不将其考虑在内。有多种选项可供选择,请参阅 PHPUnit 文档中的 忽略代码块。
使用 Xdebug 加快覆盖率
使用Xdebug进行代码覆盖率数据收集的性能可以通过将白名单过滤委托给Xdebug来提高。请参阅相应的PHPUnit文档部分:使用Xdebug加速代码覆盖率。
致谢
Volodymyr Stelmakh
许可协议为MIT许可证。更多信息请参阅LICENSE。