PHP プロジェクトで単体テストとコード カバレッジを実装するにはどうすればよいですか?
はじめに
ソフトウェア開発プロセスにおいて、単体テストは非常に重要なリンクです。コードの単位をテストすることで、コードの品質を向上させ、潜在的なエラーを減らし、プログラムの安定性と信頼性を確保できます。コード カバレッジはテストの尺度であり、テストでカバーされるコードの量と、不足しているテスト ケースがあるかどうかを知ることができます。この記事では、PHP プロジェクトで単体テストとコード カバレッジを実装する方法を紹介します。
1. PHPUnit と Xdebug 拡張機能をインストールする
PHPUnit は、さまざまなテスト タイプとアサーションをサポートし、単体テストの作成と実行に役立つ人気のある PHP テスト フレームワークです。始める前に、PHPUnit 拡張機能と Xdebug 拡張機能をインストールする必要があります。
PHPUnit をインストールします:
Composer を通じてインストールできます。次のコマンドを実行します:
composer require --dev phpunit/phpunit
Xdebug 拡張機能をインストールします:
Xdebugコード カバレッジ レポート機能を提供する強力な PHP デバッグ拡張機能です。次のコマンドを使用して Xdebug 拡張機能をインストールできます:
pecl install xdebug
インストールが完了したら、php.ini ファイルで Xdebug 拡張機能を有効にし、次の構成を追加する必要があります:
zend_extension=path/to/xdebug.so
PHP-FPM または Web サーバーを再起動し、設定を有効にします。
2. 単体テスト ケースを作成する
単体テストを実装する前に、テスト ケース、つまり 1 つ以上の関数、メソッド、またはクラスのテスト コードを作成する必要があります。コードの正確性を保証するために、テスト ケースはさまざまなシナリオと境界条件をカバーする必要があります。
次は簡単な例です。2 つのメソッド add
と subtract
を含むクラス Calculator
を作成し、対応するメソッドを作成します。テストケース。
class CalculatorTest extends PHPUnitFrameworkTestCase { public function testAdd() { $calculator = new Calculator(); $result = $calculator->add(2, 3); $this->assertEquals(5, $result); } public function testSubtract() { $calculator = new Calculator(); $result = $calculator->subtract(5, 3); $this->assertEquals(2, $result); } }
3. 単体テストの実行
テスト ケースを作成した後、PHPUnit を使用してこれらのテストを実行できます。
phpunit.xml という名前の構成ファイルを作成します:
<?xml version="1.0" encoding="UTF-8"?> <phpunit bootstrap="vendor/autoload.php"> <testsuites> <testsuite name="My Test Suite"> <directory>tests</directory> </testsuite> </testsuites> </phpunit>
vendor/bin/phpunit
PHPUnit は、
tests ディレクトリ内のテスト ケース ファイルを自動的に検索して実行し、テスト結果を出力します。
構成ファイルに追加して、コード カバレッジを有効にします: <pre class='brush:xml;toolbar:false;'><coverage processUncoveredFiles="true">
<include>
<directory>src</directory>
</include>
</coverage></pre>
vendor/bin/phpunit --coverage-html report/
実行後、プロジェクト ルート ディレクトリに
report という名前のフォルダーが生成され、このフォルダーにはコード カバレッジ レポートの HTML ファイルが含まれます。ブラウザーで HTML ファイルを開き、コード カバレッジを表示します。
以上がPHP プロジェクトで単体テストとコード カバレッジを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。