Maison >développement back-end >tutoriel php >Tests unitaires et analyse de couverture des fonctions PHP
Tests unitaires et analyse de couverture des fonctions PHP : utilisez PHPUnit pour les tests unitaires, en écrivant des fichiers .test.php pour isoler et tester des fonctions individuelles. Utilisez la commande phpunit pour exécuter des tests unitaires. Utilisez phpunit --coverage-html pour analyser la couverture et générer un rapport montrant les lignes de code testées et non testées. Installer PHPUnit, écrire des tests unitaires, exécuter les tests, analyser la couverture, démontrer ce processus à l'aide d'une fonction d'ajout personnalisée.
Tests unitaires et analyse de couverture des fonctions PHP
L'écriture de code de qualité en PHP nécessite des tests rigoureux pour garantir qu'il fonctionne correctement et obtient les résultats attendus. Les tests unitaires permettent d'isoler et de tester des fonctions ou des méthodes individuelles, tandis que l'analyse de couverture permet de déterminer quelles parties du code ont été testées.
Installer PHPUnit
PHPUnit est un framework de tests unitaires PHP populaire. Pour l'installer, utilisez Composer :
composer require --dev phpunit/phpunit
Écriture de tests unitaires
Les tests unitaires sont écrits avec un fichier d'extension .test.php. Voici un exemple de test de la fonction d'ajout :
<?php use PHPUnit\Framework\TestCase; class AddFunctionTest extends TestCase { public function testAddNumbers() { $result = add(1, 2); $this->assertEquals(3, $result); } }
Exécuter des tests unitaires
Exécuter des tests unitaires à l'aide de la commande phpunit :
phpunit
Analyser la couverture
Phpunit fournit une option intégrée pour générer des rapports de couverture :
phpunit --coverage-html
Cela générera un rapport de couverture dans le répertoire html
. Il montrera quelles lignes du code ont été testées et quelles lignes n'ont pas été testées. html
目录下生成一个覆盖率报告。它将显示代码中哪些行已被测试,哪些行尚未被测试。
实战案例
为了演示,我们创建一个自定义 add 函数,然后编写一个单元测试来测试它:
functions.php
<?php function add(int $num1, int $num2): int { return $num1 + $num2; }
AddFunctionTest.test.php
<?php use PHPUnit\Framework\TestCase; class AddFunctionTest extends TestCase { public function testAddNumbers() { $result = add(1, 2); $this->assertEquals(3, $result); } public function testAddNegativeNumbers() { $result = add(-1, -2); $this->assertEquals(-3, $result); }
运行单元测试:
phpunit
生成覆盖率报告:
phpunit --coverage-html
覆盖率报告将显示 add
add
est entièrement couverte, ce qui signifie que nos tests unitaires couvrent tous ses chemins de code. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!