ホームページ >バックエンド開発 >PHPチュートリアル >PHP 単体テストと継続的デリバリーの統合
要約: PHPUnit 単体テスト フレームワークと CI/CD パイプラインを統合することで、PHP コードの品質を向上させ、ソフトウェア配信を高速化します。 PHPUnit を使用すると、コンポーネントの機能を検証するためのテスト ケースを作成でき、GitLab CI や GitHub Actions などの CI/CD ツールでこれらのテストを自動的に実行できます。例: テスト ケースを使用して認証コントローラーを検証し、ログイン機能が期待どおりに動作することを確認します。
今日の急速に進化するソフトウェア開発の世界では、自動テストと継続的デリバリー (CI/CD) が重要な役割を果たしています。重要な。この記事では、PHPUnit 単体テスト フレームワークを PHP プロジェクトの CI/CD パイプラインと統合して、コードの品質を向上させ、ソフトウェアの配信を高速化する方法について説明します。
PHPUnit とは何ですか?
PHPUnit は、PHP アプリケーション用のオープンソースの単体テスト フレームワークです。これにより、単体テストを作成して、アプリケーションの個々のコンポーネントが期待どおりに動作することを検証できます。
テスト ケースの作成
PHPUnit テスト ケースを作成するには、Test
で終わる PHP ファイルを作成し、その中に次のコードを記述します。 ##
<?php namespace Tests; use PHPUnit\Framework\TestCase; class ExampleTest extends TestCase { public function testExample() { $this->assertTrue(true); } }この例では、
ExampleTest クラスは
TestCase クラスを継承し、
testExample という名前のテスト メソッドを含みます。
GitLab CI を使用する
GitLab CI は、自動的にビルド、テスト、デプロイできる人気の CI/CD ツールです。コード。 PHPUnit テストを GitLab CI に統合するには、次の内容を.gitlab-ci.yml ファイルに追加します。
image: php:7.4 stages: - test test: stage: test script: vendor/bin/phpunitこの構成では、PHP 7.4 イメージを使用して PHPUnit テストをビルドおよび実行します。
GitHub Actions の使用
GitHub Actions は、さまざまなプラットフォームでのジョブの実行をサポートするもう 1 つの CI/CD ツールです。 PHPUnit テストを GitHub Actions に統合するには、次のコンテンツを.github/workflows/main.yml ファイルに追加します:
name: CI on: push: branches: [ main ] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: shivammathur/setup-php@v2 with: php-version: 7.4 - run: composer install - run: vendor/bin/phpunitこの構成は、PHP 7.4 イメージを使用して Ubuntu サーバー上で実行されます。 PHPUnit テスト。 実践的なケース
シナリオ: 認証コントローラーの検証
認証コントローラーをテストする PHP Web アプリケーションについて考えてみましょう。次のテスト ケースを使用して、ログイン メソッドを検証できます。<?php namespace Tests; use PHPUnit\Framework\TestCase; use App\Http\Controllers\Auth\LoginController; class AuthControllerTest extends TestCase { public function testLogin() { // Mock request and response $request = Request::create('/login', 'POST', ['email' => 'john@example.com', 'password' => 'secret']); $controller = new LoginController(); $response = $controller->login($request); // Assert that the response contains a success message $this->assertStringContainsString('Login successful', $response->getContent()); } }この単体テストを CI/CD パイプラインに統合することで、あらゆるコード変更に対して認証コントローラーが期待どおりに動作することを確認できます。
以上がPHP 単体テストと継続的デリバリーの統合の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。