>  기사  >  백엔드 개발  >  PHP 코드 적용 도구로 테스트 효율성 향상

PHP 코드 적용 도구로 테스트 효율성 향상

WBOY
WBOY원래의
2024-06-03 18:39:00893검색

PHP 코드 적용을 위해 PHPUnit을 사용하는 방법: PHPUnit을 설치하세요. PHPUnit 구성 파일(phpunit.xml)을 구성합니다. 코드 적용 범위 명령(phpunit --coverage-html build/coverage)을 실행합니다. 보고서 설명: 적용 범위: 전체 코드 줄에 대한 백분율로 실행된 코드 줄입니다. 재정의된 클래스 및 메서드: 재정의된 클래스 및 메서드를 모두 나열합니다. 발견된 코드: 실행되지 않은 코드 줄을 강조 표시합니다.

使用 PHP 代码覆盖工具提高测试效率

PHPUnit을 사용한 PHP 코드 커버리지

소개

코드 커버리지는 프로그램에서 실행되는 코드 줄 수를 측정하는 테스트 기술입니다. 이는 테스트되지 않은 코드 경로와 잠재적인 버그를 식별하는 데 도움이 됩니다. PHPUnit은 내장된 코드 적용 도구를 제공하는 인기 있는 PHP 테스트 프레임워크입니다.

PHPUnit 설치

PHPUnit을 설치하려면 Composer를 사용하세요.

composer global require "phpunit/phpunit:^9"

PHPUnit 구성

프로젝트에서 PHPUnit을 구성하려면 phpunit.xml라는 구성 파일을 만들고 다음 콘텐츠를 추가하세요.

<phpunit>
    <testsuites>
        <testsuite name="MyTestSuite">
            <directory>tests</directory>
        </testsuite>
    </testsuites>
    <filter>
        <whitelist processUncoveredFilesFromWhitelist="true">
            <directory suffix=".php">src</directory>
        </whitelist>
    </filter>
    <logging>
        <log type="coverage-html" target="build/coverage" />
    </logging>
</phpunit>

코드 적용 범위 실행

코드 적용 범위 보고서를 생성하려면 다음 명령을 실행하세요.

phpunit --coverage-html build/coverage

Explain Code Coverage Report

생성된 보고서는 대화형 HTML 인터페이스를 표시합니다.

  • Coverage: 총 ​​코드 줄 수에 대한 백분율로 실행된 코드 줄 수를 나타냅니다.
  • Covered Classes and Methods: 재정의된 모든 클래스와 메서드를 나열합니다.
  • Uncovered Code: 실행되지 않은 코드 줄을 강조 표시합니다.

실용 사례

다음 PHP 클래스를 고려하세요.

class Calculator
{
    public function add(int $a, int $b): int
    {
        return $a + $b;
    }
}

테스트를 위해 테스트 사례를 만듭니다.

class CalculatorTest extends PHPUnit_Framework_TestCase
{
    public function testAdd()
    {
        $calculator = new Calculator();
        $this->assertEquals(3, $calculator->add(1, 2));
    }
}

PHPUnit을 실행하고 코드 적용 범위 보고서를 생성한 후 다음 결과를 볼 수 있습니다.

.......                                  6 / 6 (100%)

Time: 0 seconds, Memory: 4.00 MB

OK (1 test, 1 assertion)

보고서에는 모든 코드가 포함되어 있음(100%)이 표시되어 있습니다.

위 내용은 PHP 코드 적용 도구로 테스트 효율성 향상의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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