Xdebug 커버리지 모드 설정

4089 단어 laravelphpxdebug
Laravel 9에는 특정 Laravel 프로젝트에 대한 코드 커버리지를 얻기 위해 Nuno Maduro가 추가한 새로운 기능이 있습니다. 명령은 php artisan test --coverage 입니다. 이 기사에서는 MacOS 환경에서 로컬로 xdebug를 설정하는 방법을 설명하겠습니다.


Xdebug를 설치했는지 확인하십시오.




로컬 환경에서 다음 명령을 실행할 수 있습니다.

php -v


다음과 같이 php 버전뿐만 아니라 로컬에 설치된 xdebug 버전과 같은 더 많은 데이터도 볼 수 있어야 합니다.



텍스트를 볼 수 있습니다with xdebug v3.1.3....

Valet 설치에는 이미 xdebugopcache가 포함되어 있으며 Laravel Sail은 이미 xdebug도 설치되어 있습니다.

다른 도구를 사용하여 환경을 설정하는 경우 다음 명령으로 xdebug를 설치할 수 있습니다.

홈브류와 함께




pecl install xdebug


애플 M1에서




arch -x86_64 sudo pecl install xdebug


그런 다음 php.ini 파일 위치(다른 PHP 버전에서 변경됨)를 확인하려면 다음 명령을 실행하십시오.

php --ini


그런 다음 파일을 편집하고 맨 아래에 xdebug 확장자를 추가할 수 있습니다. vs code와 같은 코드 편집기를 사용하거나 이를 위해 nano 또는 다른 편집기를 사용할 수 있습니다. Laravel 9에는 다음이 필요합니다.

// Command to open files with vscode... it is easier
code /usr/local/etc/php/8.0/php.ini

// or

nano /usr/local/etc/php/8.0/php.ini


그런 다음 파일을 저장하고 다음을 실행합니다.

php -v


파일 맨 아래에 다음 행을 추가하십시오.

zend_extension=xdebug


여기에서 xdebug가 성공적으로 추가되었는지 확인할 수 있습니다.


Xdebug 모드 설정




Xdebug 모드와 프로세스는 매우 비슷합니다. 다음을 실행합니다.

php --ini


파일 위치를 잡고 php 8.0.17 파일을 편집합니다.

// Command to open files with vscode... it is easier
code /usr/local/etc/php/8.0/php.ini

// or

nano /usr/local/etc/php/8.0/php.ini


그런 다음 맨 아래에 다음 줄을 추가하십시오.

xdebug.mode=develop,debug,coverage


이제 다음을 실행할 수 있습니다.

php artisan test --coverage


다음과 같이 작동하고 반환되어야 합니다.




프레임워크 파일 제외



php.ini 명령은 적용 범위의 백분율을 반환하고 많은 파일을 평가하며 그 중 일부는 완전히 적용되지 않으므로 다음과 같이 test --coverage 파일에서 자신의 코드 구현을 테스트하기 위해 이 파일을 제외할 수 있습니다.

    <coverage processUncoveredFiles="true">
        <include>
            <directory suffix=".php">./app</directory>
        </include>
        <exclude>
            <directory suffix=".php">./app/Macros</directory>
            <file>./app/Http/Middleware/Authenticate.php</file>
            <file>./app/Http/Middleware/RedirectIfAuthenticated.php</file>
            <file>./app/Http/Middleware/TrustHosts.php</file>
            <file>./app/Http/Middleware/TrustProxies.php</file>
            <file>./app/Providers/BroadcastServiceProvider.php</file>
            <file>./app/Providers/HorizonServiceProvider.php</file>
            <file>./app/Providers/TelescopeServiceProvider.php</file>
        </exclude>
    </coverage>


더 많은 phpunit.xml 태그를 사용자 정의할 수 있지만 이 시점에서 코드 적용 범위가 더 높습니다.

기사를 읽어 주셔서 감사합니다. coverage .

좋은 웹페이지 즐겨찾기