Maison >développement back-end >tutoriel php >Intégration des tests unitaires PHP et de la livraison continue
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.
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.
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
的测试方法。
使用 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/phpunitDans 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!