Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Integrasi ujian unit PHP dan penghantaran berterusan

Integrasi ujian unit PHP dan penghantaran berterusan

WBOY
WBOYasal
2024-05-06 18:45:01560semak imbas

Abstrak: Tingkatkan kualiti kod PHP dan percepatkan penghantaran perisian dengan menyepadukan rangka kerja ujian unit PHPUnit dan saluran paip CI/CD. PHPUnit membenarkan penciptaan kes ujian untuk mengesahkan kefungsian komponen, dan alatan CI/CD seperti GitLab CI dan GitHub Actions boleh menjalankan ujian ini secara automatik. Contoh: Sahkan pengawal pengesahan dengan kes ujian untuk memastikan fungsi log masuk berfungsi seperti yang diharapkan.

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

Integrasi Pengujian Unit PHP dan Penghantaran Berterusan

Dalam dunia pembangunan perisian yang berkembang pesat hari ini, ujian automatik dan penghantaran berterusan (CI/CD) telah menjadi penting. Artikel ini menerangkan cara untuk menyepadukan rangka kerja ujian unit PHPUnit dengan saluran paip CI/CD dalam projek PHP untuk meningkatkan kualiti kod dan mempercepatkan penghantaran perisian.

Ujian Unit PHP

Apakah itu PHPUnit?

PHPUnit ialah rangka kerja ujian unit sumber terbuka untuk aplikasi PHP. Ia membolehkan anda menulis ujian unit untuk mengesahkan bahawa komponen individu aplikasi anda berfungsi seperti yang diharapkan.

Mencipta Kes Ujian

Untuk mencipta kes ujian PHPUnit, buat fail PHP yang berakhir dengan Test dan tulis kod berikut di dalamnya: 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

Dalam contoh ini, The ExampleTest Kelas mewarisi daripada kelas TestCase dan mengandungi kaedah ujian bernama testExample.

Sepadukan PHPUnit dengan CI/CD

Gunakan GitLab CI

GitLab CI ialah alat CI/CD popular yang mengautomasikan membina, menguji dan menggunakan kod. Untuk menyepadukan ujian PHPUnit ke dalam GitLab CI, tambahkan kandungan berikut pada fail .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());
    }
}

Konfigurasi ini akan menggunakan imej PHP 7.4 untuk membina dan menjalankan ujian PHPUnit.

🎜Menggunakan GitHub Actions🎜🎜🎜GitHub Actions ialah alat CI/CD lain yang menyokong menjalankan kerja pada platform yang berbeza. Untuk menyepadukan ujian PHPUnit ke dalam Tindakan GitHub, tambahkan kandungan berikut dalam fail .github/workflows/main.yml: 🎜rrreee🎜Konfigurasi ini akan menggunakan imej PHP 7.4 untuk menjalankan ujian PHPUnit pada pelayan Ubuntu . 🎜🎜Kes Praktikal🎜🎜🎜Senario: Mengesahkan Pengawal Pengesahan🎜🎜🎜Pertimbangkan aplikasi web PHP di mana kami ingin menguji pengawal pengesahan. Kes ujian berikut boleh digunakan untuk mengesahkan kaedah log masuk: 🎜rrreee🎜 Dengan menyepadukan ujian unit ini ke dalam saluran paip CI/CD, kami boleh memastikan bahawa pada setiap perubahan kod, pengawal pengesahan berfungsi seperti yang diharapkan. 🎜

Atas ialah kandungan terperinci Integrasi ujian unit PHP dan penghantaran berterusan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn