Tachycardia 는 느리게 실행되는 테스트를 감지 및 보고하고 콘솔에서 바로 인쇄하는 PHPUnit 확장입니다. 또한 풀 요청 중에 파일의 특정 테스트에 선택적으로 인라인 주석을 달 수도 있습니다.
참고: 빈맥은 테스트 모음에서 느린 테스트만 감지하지만 이러한 테스트가 느린 이유에 대한 설명은 제공하지 않습니다. 대신에 전용 프로파일러를 사용해야 합니다.
$ Vendor/bin/phpunitPHPUnit 10.5.5(Sebastian Bergmann 및 기여자 제공).런타임: Xdebug 3.3.1이 포함된 PHP 8.3.1구성: /home/runner/work/tachycardia/tachycardia/phpunit.xml.distRandom Seed: 1698146158... ................................................. .................. 65 / 96 ( 67%).................................. 96 / 96 (100%)NexusPHPUnitTachycardiaTachycardiaExtension은 이 유일한 느린 테스트를 식별했습니다. NexusPHPUnitTachycardiaTestsRendererGithubRendererTest::testRendererWorksProperly느린 테스트를 실행하기 위해 1.0000초 제한에서 1.3374초를 사용했습니다. 시간: 00:00:01.710 (2.54%)시간: 00:58.737, 메모리: 16.00 MBOK (96개 테스트, 265개 어설션)Clover XML 형식으로 코드 적용 보고서 생성 중 ... 완료 [00:00.391]HTML 형식으로 코드 적용 보고서 생성 중 ... 완료 [ 00:01.930]
빈맥은 프로젝트의 테스트 스위트 실행을 돕기 위해 개발 시간 종속성으로만 설치해야 합니다. Composer를 사용하여 설치할 수 있습니다.
composer require --dev nexusphp/tachycardia
빈맥은 다음 매개변수를 지원합니다.
time-limit - 모든 테스트에 적용되는 시간 제한(초)입니다. 이 양을 초과하는 모든 테스트는 느린 것으로 간주됩니다. 기본값: 1.00
Report-count - 콘솔 보고서에 표시될 느린 테스트 수입니다. 이는 Github Actions 보고서에서는 무시됩니다. 기본값: 10
정밀도 - 테스트에 소요된 시간과 할당된 시간 제한의 소수점 이하 자릿수의 정밀도입니다. 기본값: 4
format - 콘솔용 렌더러의 형식입니다.
ci-format - CI 렌더러의 형식입니다.
콘솔과 CI의 렌더러 형식은 다음 중 하나일 수 있습니다.
체재 | 콘솔용? | CI를 위해? | 비고 |
---|---|---|---|
목록 | 콘솔의 기본값 | ||
테이블 | |||
깃허브 | CI의 기본값 | ||
gitlab | |||
팀 시티 |
기본 구성 옵션과 함께 확장 기능을 사용하려면 phpunit.xml.dist
또는 phpunit.xml
파일에 다음을 추가하기만 하면 됩니다.
<?xml version="1.0" 인코딩="UTF-8"?> <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd" bootstrap="vendor/autoload.php" 캐시ResultFile=" build/.phpunit.cache/test-results" colors="true" beStrictAboutOutputDuringTests="true" beStrictAboutTodoAnnotatedTests="true" failureOnRisky="true" failureOnWarning="true"><!-- 다른 phpunit 구성은 여기에 있습니다 --><extensions> <bootstrap class="NexusPHPUnitTachycardiaTachycardiaExtension" /> </확장자> </phpunit>
이제, vendor/bin/phpunit
실행하세요. 소요된 시간이 구성된 시간 제한을 초과하는 테스트 사례가 있는 경우 모든 테스트가 완료된 후 콘솔에 표시됩니다.
사용 가능한 옵션 중 하나 이상을 사용자 정의하려면 phpunit.xml.dist
또는 phpunit.xml
파일의 항목을 변경하면 됩니다.
<?xml version="1.0" 인코딩="UTF-8"?> <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd" bootstrap="vendor/autoload.php" 캐시ResultFile=" build/.phpunit.cache/test-results" colors="true" beStrictAboutOutputDuringTests="true" beStrictAboutTodoAnnotatedTests="true" failureOnRisky="true" failureOnWarning="true"><!-- 다른 phpunit 구성은 여기에 있습니다 --><extensions> <bootstrap class="NexusPHPUnitTachycardiaTachycardiaExtension"> <parameter name="time-limit" value="2.00" /> <매개변수 이름="report-count" value="30" /> <매개변수 이름="정밀도" value="2" /> <매개변수 이름="형식" 값="테이블" /> <매개변수 이름="ci-format" 값="github" /> </부트스트랩> </확장자> </phpunit>
느린 테스트 보고
환경 변수를 사용하여 콘솔 보고 활성화/비활성화
Github Actions에서 프로파일링 활성화/비활성화
맞춤형 시간 제한
테스트당 사용자 정의 시간 제한 설정
수업별 맞춤 시간 제한 설정
테스트별 또는 수업별 시간 제한 비활성화
대신 속성 사용
일반 렌더링 대신 결과를 표로 작성
이제 속도가 빠른지 확인하기 위해 느린 테스트를 다시 실행합니다.
v1.x에서 v2.x로 업그레이드하시겠습니까? 업그레이드 가이드를 참조하세요.
기여를 매우 환영합니다. 개선 사항이나 버그 수정 사항이 있으면 지금 PR을 공개하세요!
넥서스 빈맥에 기여에 대해 자세히 알아보세요.
빈맥은 johnkary/phpunit-speedtrap
에서 영감을 얻었지만 동화작용 스테로이드를 주입했습니다.
빈맥은 실제로 일반적으로 분당 100회가 넘는 정상적인 휴식 속도를 초과하는 심박수를 가리키는 의학 용어입니다.
이 라이브러리는 MIT 라이선스에 따라 라이선스가 부여됩니다.