>  기사  >  백엔드 개발  >  PHP 단위 테스트 및 지속적 전달 통합

PHP 단위 테스트 및 지속적 전달 통합

WBOY
WBOY원래의
2024-05-06 18:45:01562검색

요약: PHPUnit 단위 테스트 프레임워크와 CI/CD 파이프라인을 통합하여 PHP 코드 품질을 개선하고 소프트웨어 제공을 가속화합니다. PHPUnit을 사용하면 구성 요소 기능을 확인하기 위한 테스트 사례를 생성할 수 있으며 GitLab CI 및 GitHub Actions와 같은 CI/CD 도구는 이러한 테스트를 자동으로 실행할 수 있습니다. 예: 테스트 케이스로 인증 컨트롤러의 유효성을 검사하여 로그인 기능이 예상대로 작동하는지 확인합니다.

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

PHP 단위 테스트 및 지속적 전달의 통합

오늘날 빠르게 발전하는 소프트웨어 개발 세계에서는 자동화된 테스트 및 지속적 전달(CI/CD)이 중요해졌습니다. 이 문서에서는 PHPUnit 단위 테스트 프레임워크를 PHP 프로젝트의 CI/CD 파이프라인과 통합하여 코드 품질을 개선하고 소프트웨어 제공을 가속화하는 방법을 설명합니다.

PHP 단위 테스트

PHPUnit이란 무엇입니까?

PHPUnit은 PHP 애플리케이션을 위한 오픈 소스 단위 테스트 프레임워크입니다. 이를 통해 단위 테스트를 작성하여 애플리케이션의 개별 구성 요소가 예상대로 작동하는지 확인할 수 있습니다.

테스트 사례 만들기

PHPUnit 테스트 사례를 만들려면 Test로 끝나는 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@v2
      - uses: shivammathur/setup-php@v2
        with:
          php-version: 7.4
      - run: composer install
      - run: vendor/bin/phpunit

이 예에서는 예제 테스트 클래스는 TestCase 클래스를 상속하고 testExample라는 테스트 메서드를 포함합니다.

CI/CD와 PHPUnit 통합

GitLab CI 사용

GitLab CI는 코드 빌드, 테스트 및 배포를 자동화하는 인기 있는 CI/CD 도구입니다. PHPUnit 테스트를 GitLab CI에 통합하려면 .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());
    }
}

이 구성은 PHP 7.4 이미지를 사용하여 PHPUnit 테스트를 빌드하고 실행합니다.

🎜GitHub Actions 사용🎜🎜🎜GitHub Actions는 다양한 플랫폼에서 작업 실행을 지원하는 또 다른 CI/CD 도구입니다. PHPUnit 테스트를 GitHub Actions에 통합하려면 .github/workflows/main.yml 파일에 다음 콘텐츠를 추가하세요. 🎜rrreee🎜이 구성은 PHP 7.4 이미지를 사용하여 Ubuntu 서버에서 PHPUnit 테스트를 실행합니다. . 🎜🎜실용 사례🎜🎜🎜시나리오: 인증 컨트롤러 유효성 검사🎜🎜🎜인증 컨트롤러를 테스트하려는 PHP 웹 애플리케이션을 고려해보세요. 다음 테스트 사례를 사용하여 로그인 방법을 확인할 수 있습니다. 🎜rrreee🎜 이 단위 테스트를 CI/CD 파이프라인에 통합하면 모든 코드 변경 시 인증 컨트롤러가 예상대로 작동하는지 확인할 수 있습니다. 🎜

위 내용은 PHP 단위 테스트 및 지속적 전달 통합의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.