ホームページ >バックエンド開発 >PHPチュートリアル >PHP 単体テストと継続的デリバリーの統合

PHP 単体テストと継続的デリバリーの統合

WBOY
WBOYオリジナル
2024-05-06 18:45:01577ブラウズ

要約: PHPUnit 単体テスト フレームワークと CI/CD パイプラインを統合することで、PHP コードの品質を向上させ、ソフトウェア配信を高速化します。 PHPUnit を使用すると、コンポーネントの機能を検証するためのテスト ケースを作成でき、GitLab CI や GitHub Actions などの CI/CD ツールでこれらのテストを自動的に実行できます。例: テスト ケースを使用して認証コントローラーを検証し、ログイン機能が期待どおりに動作することを確認します。

PHP 单元测试与持续交付的集成

PHP 単体テストと継続的デリバリーの統合

今日の急速に進化するソフトウェア開発の世界では、自動テストと継続的デリバリー (CI/CD) が重要な役割を果たしています。重要な。この記事では、PHPUnit 単体テスト フレームワークを PHP プロジェクトの CI/CD パイプラインと統合して、コードの品質を向上させ、ソフトウェアの配信を高速化する方法について説明します。

PHP 単体テスト

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 という名前のテスト メソッドを含みます。

PHPUnit を CI/CD と統合する

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。