Rumah >pembangunan bahagian belakang >tutorial php >Integrasi ujian unit PHP dan penghantaran berterusan
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.
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.
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
的测试方法。
使用 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/phpunitDalam 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!