thor-juhasz/phpunit-coverage-check

一个PHPUnit测试覆盖率检查器

v0.3.0 2021-07-04 22:21 UTC

This package is auto-updated.

Last update: 2024-09-07 04:43:46 UTC


README

CI workflow Coverage Status Scrutinizer Code Quality Build Status

GitHub license GitHub release

一个PHPUnit测试覆盖率检查器。

此命令将解析一个clover.xml报告文件(由PHPUnit生成),以检查测试覆盖率是否达到某个阈值(默认为80%)。

此库基于johanvanhelden的测试覆盖率检查

目录

目录

安装

在项目根目录中运行此命令

composer require --dev thor-juhasz/phpunit-coverage-check

这将在您的 vendor/bin/ 目录中添加一个新的PHP二进制文件,命名为 phpunit-coverage-check

使用方法

在GitHub工作流程中使用

要在此GitHub CI工作流程中使用此库,请确保在运行phpunit时生成一个clover.xml报告文件

      - name: Run PHPUnit Tests
        run: ./vendor/bin/phpunit --coverage-clover clover.xml

然后只需在此运行phpunit的步骤之后添加此步骤

      - name: Test coverage
        run: ./vendor/bin/phpunit-coverage-check -t 100 clover.xml

手动运行

使用PHPUnit生成clover.xml报告文件

./vendor/bin/phpunit --coverage-clover clover.xml

然后您可以运行此库提供的二进制文件,将clover.xml文件的名称作为第一个参数传递

./vendor/bin/phpunit-coverage-check clover.xml

参数

文件名(必需)

clover覆盖率XML文件的名称。

示例

./vendor/bin/phpunit-coverage-check clover.xml

选项

阈值(可选)

默认值:80

阈值确定可接受测试覆盖率的下限。您可以使用--threshold N或简写为-t N来传递您想要的阈值,其中N是一个从0到100的数字

示例

# Requires 100% coverage
./vendor/bin/phpunit-coverage-check --threshold 100 clover.xml
# Requires 50% coverage
./vendor/bin/phpunit-coverage-check -t 50 clover.xml
# By default when passing no threshold option, it will require 80% coverage
./vendor/bin/phpunit-coverage-check clover.xml

指标(可选)

默认值:elements

您可以在此处指定您想用来读取代码覆盖率的指标。支持的指标有

  • elements
  • statements
  • methods

示例

./vendor/bin/phpunit-coverage-check --metric statements clover.xml
./vendor/bin/phpunit-coverage-check -m methods clover.xml
# By default when passing no metric option, it will use elements
./vendor/bin/phpunit-coverage-check clover.xml

suppress-errors(可选)

当clover XML报告中报告的代码覆盖率低于指定的阈值时,命令将以代码1退出。当在CI工作流程中使用时,这将导致作业失败。

如果您想在没有使作业失败的情况下使用此工具在CI工作流程中,可以传递--suppress-errors选项(或简写为-s)。

示例

      # Even if the coverage is under the threshold, this will not fail the job
      - name: Test coverage
        run: ./vendor/bin/phpunit-coverage-check -t 100 clover.xml

输出

示例输出

# When coverage is 100%, and default threshold used.
$ ./vendor/bin/phpunit-clover-test-coverage-check clover.xml
[OK] Code coverage is 100%, which is acceptable (requires >= 80% coverage)

# When coverage is 100%, and threshold is set to 100%.
$ ./vendor/bin/phpunit-clover-test-coverage-check clover.xml
[OK] Code coverage is 100%, which is acceptable (requires full coverage)

# When coverage is 1%, and default threshold used.
$ ./src/test-coverage-checker.php clover.xml
[ERROR] Code coverage is 1%, which is not acceptable (requires >= 80% coverage)

# When coverage is 1%, and threshold is set to 100%.
$ ./src/test-coverage-checker.php clover.xml
[ERROR] Code coverage is 1%, which is not acceptable (requires full coverage)