PHPUnit 3.5.10을 사용 중이고 클로버 커버리지에 대한 xml 리포트 생성에 문제가 있습니다.PHPUnit - 클로버 커버리지에 대한 PHP_Token_Stream 오류
coverage-html로 내보내기가 정상적으로 작동합니다. 또한 커버 리지 보고서에서 충분한 파일을 제외하면 clover.xml 파일이 생성됩니다. 그러나 테스트 스위트를 실행하면 "코드 적용 범위 데이터를 XML 파일에 쓰는 데 시간이 걸릴 수 있습니다."라는 메시지가 나타나고 자동으로 실행이 실패합니다. 25 회마다 "Segmentation Fault"메시지가 나옵니다.
처음에는이 문제를 PHP_CodeCoverage :: getSummary() 함수로 추적했지만 코드 허용 범위를 허용 목록으로 제한하면 프로그램에서이 오류가 발생했습니다.
다음은 코드 범위 보고서가 PHP_Token_Stream :: scan() 함수에서 시간 초과 된 것처럼 보입니다. 사실 누적 된 약 31,000 개의 토큰이 처리 된 후에는 오류 메시지없이 간단히 중지됩니다.
내가 추적 코드를 넣는 양과이 메서드가 처리 할 토큰의 수에 상관 관계가 있음을 발견했습니다. 따라서 프로그램의 메모리가 부족한 것으로 보입니다.
많은 코드 파일을로드하고 파일을 차례로로드하여 PHP_Token_Stream을 테스트하는 테스트를 만들었습니다. 이것은 예상대로 작동하는 것으로 보이며 테스트 스위트의 컨텍스트에 나타나는대로 오류를 복제하지 않습니다.
클로버 커버리지 보고서를 출력하는 방법에 대한 제안 사항이 있으십니까?
얼마나 많은 파일을 수신 확인 보고서에 포함시키고 있습니까? 많은 파일이 포함되어있을 때 메모리 관리와 관련하여 php-token-stream과 관련하여 알려진 문제가 있습니다. https://github.com/sebastianbergmann/php-token-stream/issues/60 – Motin