PHP で単体テストとコード カバレッジ分析を実行するにはどうすればよいですか?
ソフトウェア開発では、単体テストとコード カバレッジ分析は、コードの品質と信頼性を向上させる重要なツールです。 PHP 開発では、単体テストやコードカバレッジ分析を通じて、コード内の欠陥を効果的に発見して修正し、コードの保守性やテスト性を向上させることができます。
- 単体テストの概要
単体テストとは、ソフトウェアのテスト可能な最小単位 (通常は関数またはクラス メソッド) をテストすることを指します。その目的は、各機能モジュールの正確性を検証し、ソフトウェア全体の正確性を保証することです。 PHP では、単体テスト フレームワークとして PHPUnit を使用できます。
- PHPUnit のインストール
単体テストを行う前に、まず PHPUnit をインストールする必要があります。 Composer を介してインストールでき、コマンド ライン ツールを開き、プロジェクト ディレクトリに入り、次のコマンドを実行します。
composer require --dev phpunit/phpunit
ログイン後にコピー
インストールが完了すると、PHPUnit が vendor にインストールされます。 /bin
ディレクトリ。
- テスト ケースの作成
テスト ケースの作成は、単体テストの重要なステップです。テスト ケースには通常、テスト対象のターゲット関数またはクラス メソッドと、予想される出力または動作が含まれます。テスト ケースを作成するときは、潜在的な欠陥をできる限り明らかにするために、さまざまな入力状況と境界条件をカバーする必要があります。
たとえば、2 つの数値を加算できる加算メソッド add()
を持つ電卓クラス Calculator
があるとします。メソッドの正しさを検証するためにテスト ケースを作成できます。
use PHPUnitFrameworkTestCase;
class CalculatorTest extends TestCase
{
public function testAdd()
{
$calculator = new Calculator();
$result = $calculator->add(2, 3);
$this->assertEquals(5, $result);
}
}
ログイン後にコピー
このテスト ケースでは、最初に Calculator
オブジェクトが作成され、次に add()
メソッドが呼び出されて 2 つの数値が加算され、assertion## は次のようになります。 #assertEquals()計算結果が期待値と等しいかどうかを判断するために使用されます。
単体テストの実行- テスト ケースを作成した後、単体テストを実行してコードを検証できます。コマンド ライン ツールで、プロジェクト ディレクトリを入力し、次のコマンドを実行します。
./vendor/bin/phpunit
ログイン後にコピー
PHPUnit は、プロジェクト内のテスト ケースを自動的に検索して実行します。テストが完了すると、成功したテスト ケースの数、失敗したテスト ケースの数、および詳細なエラー情報を含むテスト結果が出力されます。
コード カバレッジ分析- コード カバレッジ分析は、テスト ケースがコードをどの程度カバーしているかを評価するプロセスです。これは、開発者がコードのどの部分がテストされたかを理解し、テスト ケースを改善するためのガイダンスを提供するのに役立ちます。
PHPUnit では、
--coverage-html パラメーターを使用してコード カバレッジ レポートを生成できます。コマンド ライン ツールで、次のコマンドを実行します。
./vendor/bin/phpunit --coverage-html coverage
ログイン後にコピー
上記のコマンドは、プロジェクト ルート ディレクトリに
coverage という名前のフォルダーを生成します。このフォルダーにはコード カバレッジ レポートが含まれます。ブラウザで
index.html を開くと、レポートを表示できます。
コード カバレッジ レポートには、各ファイルと各関数のカバレッジ、およびカバーされていないコードの行数が表示されます。コード カバレッジ レポートを表示すると、テスト ケースでカバーされていないコードの部分を発見し、テスト ケースを改善できます。
上記の手順により、PHP で単体テストとコード カバレッジ分析を実行し、コードの品質と信頼性を向上させることができます。包括的なテスト ケースを作成し、コード カバレッジを分析することで、潜在的な問題を発見して適時に修正し、コードの正確さと保守性を確保できます。
以上がPHP で単体テストとコード カバレッジ分析を行うにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。