Web アプリケーションの規模が拡大し続けるにつれて、PHP 言語のアプリケーションもますます普及しています。ソフトウェア開発プロセスでは、自動テストによって開発効率とソフトウェア品質が大幅に向上します。 Jenkins は、ソフトウェアの構築、テスト、展開、その他の操作を自動的に実行できる拡張可能なオープン ソース オートメーション サーバーです。今日は、PHP 開発における自動テストに Jenkins を使用する方法を見ていきます。
1. Jenkins のインストールと構成
まず、サーバーに Jenkins をインストールする必要があります。 Jenkins は、Windows、Linux、Mac などを含む複数のオペレーティング システムをサポートしています。インストール完了後、ブラウザにJenkinsのURLアドレスを入力し、管理者アカウントのユーザー名とパスワードを入力してJenkinsにログインします。
インストールが完了したら、Jenkins のメイン インターフェイスで、PHP 開発で使用するいくつかのプラグインとツールを構成する必要があります。
インストールが完了したら、PHP 自動テストを実行するときに使用するために、Jenkins のグローバル構成でいくつかの設定を行うことができます。たとえば、PHP や Composer のパス、特定のブラウザや Selenium ポートなどを設定します。
2. Jenkins プロジェクトをビルドする
Jenkins のプロジェクトはソフトウェア ビルド プロセスです。 PHP 開発では、各プロジェクトを Jenkins プロジェクトとして扱い、Jenkins でテスト プロセスを構築および管理できます。
Jenkins のメイン インターフェイスで、[新しいプロジェクト] をクリックし、プロジェクト名を入力し、[フリー スタイル ソフトウェア プロジェクトの構築] を選択して、[OK] をクリックします。
次に、PHP 自動テストで使用するためにプロジェクト構成でいくつかの設定を行います。たとえば、ソース管理、ビルド トリガー、ビルド環境、ビルド ステップなどのセットアップです。
より重要なのは「ビルド ステップ」です。これは、PHP 自動テストを使用するためです。 「ビルド ステップ」では、Composer を使用した依存ライブラリのインストール、PHPUnit テスト スクリプトの実行など、複数の実行コマンドを追加できます。次に、一般的に使用される 2 つの自動テスト手法、単体テストと機能テストについて詳しく紹介します。
3. 単体テスト
単体テストとは、ソフトウェア システムの単一コンポーネントをテストするプロセスを指し、各コンポーネントが期待どおりに動作するかどうかを 1 つずつ検証することを目的としています。 PHP 開発では、単体テストに PHPUnit を使用できます。
以下は PHP のサンプル テスト コードです:
<?php use PHPUnitFrameworkTestCase; class StringUtilTest extends TestCase { public function testStringLength() { $stringUtil = new StringUtil(); $string = 'PHPUnit test'; $length = $stringUtil->getLength($string); $this->assertEquals(11, $length); } }
Jenkins プロジェクトの「ビルド ステップ」で、PHPUnit コマンドを追加してテストを実行できます:
composer install vendor/bin/phpunit tests/
4 、機能テスト
機能テストとは、ソフトウェア システムが期待どおりに動作するかどうかをテストするテスト プロセスを指します。 PHP 開発では、機能テストに Selenium を使用できます。
まず、Jenkins プロジェクトの「ビルド ステップ」で、次のコマンドを追加する必要があります。
composer install vendor/bin/phpunit tests/ java -jar selenium-server-standalone.jar
その中で、selenium-server-standalone.jar は、次のことができる Selenium ツールです。コマンドラインで使用できます。 で Selenium サービスを開始します。 Selenium ツールをダウンロードしたら、プロジェクトのルート ディレクトリに配置します。
次に、テストするサンプル コードを PHP に追加します。
<?php use FacebookWebDriverRemoteRemoteWebDriver; use FacebookWebDriverRemoteDesiredCapabilities; class ExampleFunctionalTest extends PHPUnitFrameworkTestCase { public function testChrome() { $driver = RemoteWebDriver::create( 'http://localhost:4444/wd/hub', DesiredCapabilities::chrome() ); $driver->get('http://www.google.com'); $this->assertEquals('Google', $driver->getTitle()); } }
Jenkins プロジェクトを実行します。Jenkins は Selenium サービスを開始し、機能テストを自動的に実行します。 Jenkins でテスト結果を表示します。テストに合格した場合、テストは成功です。
5. 概要
この記事では、PHP 開発における自動テストに Jenkins を使用する方法を学びました。まず、Jenkins プラグイン、ツール、環境をインストールして構成します。次に、Jenkins プロジェクトのビルド ステップを設定することにより、単体テストと機能テストのそれぞれの自動テスト方法を紹介しました。
自動テストにより、PHP 開発の効率とソフトウェアの品質が大幅に向上します。この記事が PHP 開発者に役立つことを願っています。
以上がPHP 開発での自動テストに Jenkins を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。