Heim  >  Artikel  >  Backend-Entwicklung  >  Integration von PHP Unit Testing und Continuous Delivery

Integration von PHP Unit Testing und Continuous Delivery

WBOY
WBOYOriginal
2024-05-06 18:45:01560Durchsuche

Zusammenfassung: Verbessern Sie die PHP-Codequalität und beschleunigen Sie die Softwarebereitstellung durch die Integration des PHPUnit-Unit-Testing-Frameworks und der CI/CD-Pipeline. PHPUnit ermöglicht die Erstellung von Testfällen zur Überprüfung der Komponentenfunktionalität, und CI/CD-Tools wie GitLab CI und GitHub Actions können diese Tests automatisch ausführen. Beispiel: Validieren Sie den Authentifizierungscontroller mit Testfällen, um sicherzustellen, dass die Anmeldefunktion wie erwartet funktioniert.

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

Integration von PHP Unit Testing und Continuous Delivery

In der heutigen, sich schnell entwickelnden Welt der Softwareentwicklung sind automatisierte Tests und Continuous Delivery (CI/CD) von entscheidender Bedeutung. In diesem Artikel wird beschrieben, wie Sie das Unit-Testing-Framework PHPUnit mit einer CI/CD-Pipeline in ein PHP-Projekt integrieren, um die Codequalität zu verbessern und die Softwarebereitstellung zu beschleunigen.

PHP Unit Testing

Was ist PHPUnit?

PHPUnit ist ein Open-Source-Unit-Test-Framework für PHP-Anwendungen. Sie können damit Unit-Tests schreiben, um zu überprüfen, ob einzelne Komponenten Ihrer Anwendung wie erwartet funktionieren.

Testfälle erstellen

Um einen PHPUnit-Testfall zu erstellen, erstellen Sie eine PHP-Datei mit der Endung Test und schreiben Sie den folgenden Code hinein: Test 结尾,并在其中编写如下代码:

<?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 是另一个 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

In diesem Beispiel Der Beispieltest Die Klasse erbt von der Klasse TestCase und enthält eine Testmethode namens testExample.

PHPUnit mit CI/CD integrieren

GitLab CI verwenden

GitLab CI ist ein beliebtes CI/CD-Tool, das das Erstellen, Testen und Bereitstellen von Code automatisiert. Um PHPUnit-Tests in GitLab CI zu integrieren, fügen Sie den folgenden Inhalt zur Datei .gitlab-ci.yml hinzu:

<?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());
    }
}

Diese Konfiguration verwendet das PHP 7.4-Image zum Erstellen und Ausführen von PHPUnit-Tests.

🎜GitHub Actions verwenden🎜🎜🎜GitHub Actions ist ein weiteres CI/CD-Tool, das die Ausführung von Jobs auf verschiedenen Plattformen unterstützt. Um PHPUnit-Tests in GitHub Actions zu integrieren, fügen Sie den folgenden Inhalt in die Datei .github/workflows/main.yml ein: 🎜rrreee🎜Diese Konfiguration verwendet das PHP 7.4-Image, um PHPUnit-Tests auf einem Ubuntu-Server auszuführen . 🎜🎜Praktischer Fall🎜🎜🎜Szenario: Validierung des Authentifizierungscontrollers🎜🎜🎜Stellen Sie sich eine PHP-Webanwendung vor, bei der wir den Authentifizierungscontroller testen möchten. Der folgende Testfall kann zur Überprüfung der Anmeldemethode verwendet werden: 🎜rrreee🎜 Durch die Integration dieses Komponententests in die CI/CD-Pipeline können wir sicherstellen, dass der Authentifizierungscontroller bei jeder Codeänderung wie erwartet funktioniert. 🎜

Das obige ist der detaillierte Inhalt vonIntegration von PHP Unit Testing und Continuous Delivery. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn