Skip to content

How to get PHPUnit coverage? #1

@tuanpt-0634

Description

@tuanpt-0634

Coverage driver

Để generate coverage report bằng PHPUnit, cần có coverage driver:
image

Có 3 drivers bao gồm (ưu tiên từ trên xuống dưới):

  • pcov cho PHPUnit version >= 8
    php -dextension=pcov.so -dpcov.enabled=1 -dpcov.directory=src ./vendor/bin/phpunit --coverage-text

    NOTE: pcov.directory=src, trong đó src là thư mục chứa source code

  • phpdbg
    phpdbg -qrr ./vendor/bin/phpunit --coverage-text
  • XDebug
    XDEBUG_MODE=coverage php -dzend_extension=xdebug.so ./vendor/bin/phpunit --coverage-text

NOTE: chạy trong docker container đã cài sẵn các extension pcov, xdebug

Coverage format

Có nhiều loại format cho coverage:

Code Coverage Options:
  --coverage-clover <file>    Generate code coverage report in Clover XML format
  --coverage-crap4j <file>    Generate code coverage report in Crap4J XML format
  --coverage-html <dir>       Generate code coverage report in HTML format
  --coverage-php <file>       Export PHP_CodeCoverage object to file
  --coverage-text=<file>      Generate code coverage report in text format [default: standard output]
  --coverage-xml <dir>        Generate code coverage report in PHPUnit XML format

Nhưng thông dụng nhất là --coverage-text thường dùng trong CI hoặc xem nhanh kết quả và --coverage-html để xem chi tiết dưới dạng web dashboard và --coverage-clover dùng cho Sun*CI

Tasks

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions