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

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
Coverage driver
Để generate coverage report bằng PHPUnit, cần có coverage driver:

Có 3 drivers bao gồm (ưu tiên từ trên xuống dưới):
phpdbgCoverage format
Có nhiều loại format cho coverage:
Nhưng thông dụng nhất là
--coverage-textthườ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-cloverdùng cho Sun*CITasks