PHPUnit は PHP でのユニットテストを効率化するためのフレームワークです。Jenkins と組み合わせると、CI(継続的インテグレーション)プロセスにテストを組み込み、コード変更のたびにテストを実行できます。
Jenkins の PHPUnit プラグイン
Jenkins の PHPUnit プラグインを使用すると、Jenkins ジョブに PHPUnit テストを簡単に追加できます。このプラグインは、テストの実行、結果の表示、および失敗したテストの自動通知を行います。
PHPUnit のインストールと構成
PHPUnit をインストールするには、Composer を使用します。Composer は PHP パッケージマネージャーで、次のようにインストールできます。
composer global require phpunit/phpunit
次に、composer.json ファイルに次の依存関係を追加します。
{
"require-dev": {
"phpunit/phpunit": "^9"
}
}
テストの作成
PHPUnit テストは、次のような構文を使用して作成します。
<?php
class MyTestCase extends PHPUnitFrameworkTestCase
{
public function testAdd()
{
$this->assertEquals(3, 1 + 2);
}
}
この例では、MyTestCase
クラスには testAdd
というテストメソッドがあります。このメソッドは、1 + 2
の結果が 3
であることを確認します。
Jenkins ジョブの作成
Jenkins で PHPUnit テストを実行するには、次のようにジョブを作成します。
- Jenkins ダッシュボードで [新しいアイテムの作成] をクリックします。
- [フリースタイルプロジェクト] を選択します。
- プロジェクトに名前を付けます。
- [ビルド] セクションで、[PHPUnit テスター] を選択します。
- [テストディレクトリ] に、テストファイルを含むディレクトリパスを入力します。
- [保存] をクリックします。
CI プロセスの自動化
Jenkins ジョブを作成したら、CI プロセスを自動化できます。Jenkins ジョブを Git リポジトリのプッシュまたはマージイベントにトリガーするように設定できます。これにより、コード変更がプッシュされるたびにテストが自動的に実行されます。
失敗したテストの通知
Jenkins の通知機能を使用して、失敗したテストについて通知を受け取ることができます。たとえば、Jenkins ジョブに失敗したテストの Slack 通知を設定できます。
利点
PHPUnit と Jenkins を組み合わせることで、次の利点があります。
- コード品質の向上: テストはコードの不具合やバグを検出するのに役立ちます。
- CI プロセスの自動化: テストは自動的に実行されるため、手動で行う必要がなくなり、時間が節約できます。
- 継続的なフィードバック: コード変更がプッシュされるたびにテストが実行されるため、すぐにフィードバックを得られます。
- コラボレーションの改善: テスト結果をチームと共有することで、コラボレーションが改善されます。
まとめ
PHPUnit と Jenkins を組み合わせると、PHP コードのユニットテストを効率化できます。CI プロセスにテストを組み込むことで、コードの品質が向上し、開発プロセスが効率化されます。