Maison  >  Article  >  développement back-end  >  Intégration des tests unitaires PHP et de la livraison continue

Intégration des tests unitaires PHP et de la livraison continue

WBOY
WBOYoriginal
2024-05-06 18:45:01512parcourir

Résumé : Améliorez la qualité du code PHP et accélérez la livraison de logiciels en intégrant le cadre de tests unitaires PHPUnit et le pipeline CI/CD. PHPUnit permet la création de scénarios de test pour vérifier la fonctionnalité des composants, et les outils CI/CD tels que GitLab CI et GitHub Actions peuvent exécuter automatiquement ces tests. Exemple : validez le contrôleur d'authentification avec des cas de test pour garantir que la fonctionnalité de connexion fonctionne comme prévu.

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

Intégration des tests unitaires PHP et de la livraison continue

Dans le monde actuel du développement de logiciels en évolution rapide, les tests automatisés et la livraison continue (CI/CD) sont devenus cruciaux. Cet article décrit comment intégrer le framework de tests unitaires PHPUnit avec un pipeline CI/CD dans un projet PHP pour améliorer la qualité du code et accélérer la livraison de logiciels.

Tests unitaires PHP

Qu'est-ce que PHPUnit ?

PHPUnit est un framework de tests unitaires open source pour les applications PHP. Il vous permet d'écrire des tests unitaires pour vérifier que les composants individuels de votre application fonctionnent comme prévu.

Création de cas de test

Pour créer un cas de test PHPUnit, créez un fichier PHP se terminant par Test et écrivez-y le code suivant : 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

Dans cet exemple, L'exemple de test La classe hérite de la classe TestCase et contient une méthode de test nommée testExample.

Intégrez PHPUnit avec CI/CD

Utilisez GitLab CI

GitLab CI est un outil CI/CD populaire qui automatise la création, les tests et le déploiement de code. Pour intégrer les tests PHPUnit dans GitLab CI, ajoutez le contenu suivant au fichier .gitlab-ci.yml :

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

Cette configuration utilisera l'image PHP 7.4 pour créer et exécuter des tests PHPUnit.

🎜Utilisation de GitHub Actions🎜🎜🎜GitHub Actions est un autre outil CI/CD qui prend en charge l'exécution de tâches sur différentes plates-formes. Pour intégrer les tests PHPUnit dans GitHub Actions, ajoutez le contenu suivant dans le fichier .github/workflows/main.yml : 🎜rrreee🎜Cette configuration utilisera l'image PHP 7.4 pour exécuter les tests PHPUnit sur un serveur Ubuntu. . 🎜🎜Cas pratique🎜🎜🎜Scénario : Validation du contrôleur d'authentification🎜🎜🎜Considérons une application Web PHP dans laquelle nous voulons tester le contrôleur d'authentification. Le cas de test suivant peut être utilisé pour vérifier la méthode de connexion : 🎜rrreee🎜 En intégrant ce test unitaire dans le pipeline CI/CD, nous pouvons garantir qu'à chaque changement de code, le contrôleur d'authentification fonctionne comme prévu. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn