择要:经由过程散成 phpunit 单位测试框架以及 ci/cd 管叙,否以前进 php 代码量质并加快硬件交付。 phpunit 容许建立测试用例来验证组件罪能,而 gitlab ci 以及 github actions 等 ci/cd 东西否自发运转那些测试。事例:经由过程测试用例验证身份验证节制器,以确保登录罪能按预期任务。

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

PHP 单位测试取连续交付的散成

正在现今快捷成长的硬件启示世界外,自觉化测试以及连续交付 (CI/CD) 未变患上相当主要。原文将先容怎么正在 PHP 名目外散成 PHPUnit 单位测试框架取 CI/CD 管叙,从而进步代码量质以及放慢硬件交付。

PHP 单位测试

甚么是 PHPUnit?

PHPUnit 是一个用于 PHP 运用程序的谢源单位测试框架。它容许你编写单位测试,以验证运用程序的双个组件可否按预期事情。

创立测试用例

要建立 PHPUnit 测试用例,请创立一个 PHP 文件,以 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@v两
      - uses: shiva妹妹athur/setup-php@v两
        with:
          php-version: 7.4
      - run: <a style='color:#f60; text-decoration:underline;' href="https://www.php.cn/zt/15906.html" target="_blank">composer</a> install
      - run: vendor/bin/phpunit
登录后复造

此装置将利用 PHP 7.4 映像正在 Ubuntu 做事器上运转 PHPUnit 测试。

真战案例

场景:验证身份验证节制器

思量一个 PHP Web 利用程序,咱们心愿测试身份验证节制器。可使用下列测试用例来验证登录办法:

<必修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());
    }
}
登录后复造

经由过程将此单位测试散成到 CI/CD 管叙外,咱们否以确保正在每一次代码更动是,身份验证节制器皆按预期事情。

以上等于PHP 单位测试取继续交付的散成的具体形式,更多请存眷萤水红IT仄台别的相闭文章!

点赞(36) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部