permafrost-dev / coverage-check
检查项目代码覆盖率,可选地强制最小值
v2.0.0
2023-08-27 09:09 UTC
Requires
- php: ^8.0
- ext-simplexml: *
- symfony/console: ^6.0
Requires (Dev)
README
使用clover.xml文件显示项目的代码覆盖率,可选地强制最小代码覆盖率百分比。
此包设计用于在您的CI/CD或自动化测试过程中使用(例如,使用GitHub Workflows)。
此包的概念基于这篇文章。
``
关于PHP 7.x支持的说明:如果您正在使用PHP 7.x,请使用此包的1.x版本。
安装
composer require permafrost-dev/coverage-check --dev
用法
使用--require
或-r
标志指定有效的clover.xml文件和(可选)需要的最小覆盖率百分比。百分比可以是整数(整数)或小数(浮点数)。
如果您指定了--require/-r
标志,如果覆盖率百分比低于您提供的值,检查将失败,并且进程退出码将不为零。
如果您没有指定--require/-r
标志,则仅显示代码覆盖率百分比,并且退出码始终为零。
./vendor/bin/coverage-check clover.xml ./vendor/bin/coverage-check clover.xml --require=50 ./vendor/bin/coverage-check clover.xml -r 80.5 ./vendor/bin/coverage-check clover.xml -m statement -r 75 ./vendor/bin/coverage-check clover.xml --precision=1
可用选项
指标字段
可以使用--metric=<name>
或-m <name>
选项指定用于计算代码覆盖率的字段。
有效的字段名称是element
(默认),statement
和method
。
生成clover格式覆盖率文件
PHPUnit可以生成clover格式的覆盖率报告
./vendor/bin/phpunit --coverage-clover clover.xml
示例GitHub工作流
name: run-tests on: [push, pull_request] jobs: test: runs-on: ${{ matrix.os }} strategy: fail-fast: true matrix: os: [ubuntu-latest] php: [8.1, 8.0, 7.4, 7.3] name: P${{ matrix.php }} - ${{ matrix.os }} steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, intl, iconv, fileinfo coverage: pcov - name: Setup problem matchers run: | echo "::add-matcher::${{ runner.tool_cache }}/php.json" echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" - name: Install dependencies run: composer update --prefer-stable --prefer-dist --no-interaction - name: Execute tests run: ./vendor/bin/phpunit --coverage-clover clover.xml - name: Enforce 75% code coverage run: ./vendor/bin/coverage-check clover.xml --require=75 --precision=2
测试
./vendor/bin/phpunit
变更日志
有关最近更改的更多信息,请参阅变更日志。
贡献
有关详细信息,请参阅贡献指南。
安全漏洞
请查阅我们的安全策略了解如何报告安全漏洞。
鸣谢
许可协议
MIT许可协议(MIT)。有关更多信息,请参阅许可文件。