How to use PHPUnit for PHP code coverage: Install PHPUnit. Configure the PHPUnit configuration file (phpunit.xml). Run the code coverage command (phpunit --coverage-html build/coverage). Explain the report: Coverage: Lines of code executed as a percentage of total lines of code. Overridden classes and methods: Lists all overridden classes and methods. Uncovered code: Highlight lines of code that were not executed.
Introduction
Code coverage is a testing technique that measures The number of lines of code executed in the program. This helps identify untested code paths and potential bugs. PHPUnit is a popular PHP testing framework that provides built-in code coverage tools.
Install PHPUnit
To install PHPUnit, use Composer:
composer global require "phpunit/phpunit:^9"
Configure PHPUnit
To To configure PHPUnit in your project, create a configuration file named phpunit.xml
and add the following content:
<phpunit> <testsuites> <testsuite name="MyTestSuite"> <directory>tests</directory> </testsuite> </testsuites> <filter> <whitelist processUncoveredFilesFromWhitelist="true"> <directory suffix=".php">src</directory> </whitelist> </filter> <logging> <log type="coverage-html" target="build/coverage" /> </logging> </phpunit>
Run Code Coverage
To generate a code coverage report, run the following command:
phpunit --coverage-html build/coverage
Explaining the code coverage report
The generated report will display an interactive HTML interface.
Practical Case
Consider the following PHP class:
class Calculator { public function add(int $a, int $b): int { return $a + $b; } }
To test it, we create a test case:
class CalculatorTest extends PHPUnit_Framework_TestCase { public function testAdd() { $calculator = new Calculator(); $this->assertEquals(3, $calculator->add(1, 2)); } }
Run PHPUnit and after generating the code coverage report, you can see the following results:
....... 6 / 6 (100%) Time: 0 seconds, Memory: 4.00 MB OK (1 test, 1 assertion)
The report indicates that all code has been covered (100%).
The above is the detailed content of Improve testing efficiency with PHP code coverage tools. For more information, please follow other related articles on the PHP Chinese website!