우리 프로젝트에서는 Selenium 및 Curl을 사용하는 다른 테스트 서버에서 페이지를 열어 테스트하는 PHPUnit 테스트를 실행하고 있습니다. 서버 B에는 웹 사이트를 실행하는 Apache 서버가 있습니다. 서버 A는 프로젝트 파일을 개발 서버 B에 동기화 (Rsync)하여 테스트 작업을 시작하므로 프로젝트 파일은 두 서버에서 동일합니다.PHP로 수집하는 원격 코드 범위
PHP 코드 커버리지 통계를 원격으로 수집하는 방법에는 어떤 것이 있습니까?
는 우리는 이미 서버 A에서 로컬로 실행 유닛 테스트에서 코드 커버리지를 수집 Xdebug를 사용은 (phpunit을 프로젝트 파일을 직접하고 사용 할 수 있으므로 start/stop collecting code coverage report)
업데이트 : 서버 B에
웹 사이트는 Apache가 실행하는 PHP 인스턴스에 의해 렌더링됩니다. 서버 A에서 Selenium/Curl PHP 인스턴스를 사용하여 테스트를 실행하면 명령 줄 버전이 사용됩니다. 아파치는 서버 B에서 실행되는 인스턴스는 PHP 인스턴스를 프로파일 링 할 수
(타 서버를 사용하지 않는 및 셀레늄/컬을 사용하지 않는) 단위 테스트를 실행하는 경우, 우리는이 같은 명령을 사용:
phpunit --coverage-html ./results/codecoverage/ ATestFile.php
을
PHP Cli에서 Xdebug를 사용하여 "ATestFile.php"의 테스트에 대한 코드 커버리지 보고서를 생성합니다.
지금까지 걸려온 문제에 대해 자세히 설명해 주실 수 있습니까? 아마 당신은 서버 B에서도 XDebug를 시작할 수 있습니다. 그렇다면 문제는 무엇입니까? –
내 업데이트로 일부 질문에 대한 답변을 얻었습니까? 문제는 코드베이스/prosject 파일을 사용하여 PHP 인스턴스를 실행하는 서버 B 일 때 서버 A에서 코드 커버리지 보고서를 생성하는 것입니다. – HNygard
그래서 모든 테스트가 실제로 서버 A에 의해 수행되고 있기 때문에 서버 B에서 PHPUnit을 실행하고 싶지 않습니다. XDebug는 여전히 서버 B에서 실행됩니다. 단지 PHPUnit을 사용하지 않았을뿐입니다. XDebug는 "원시"XDebug에 노출되어 PHPUnit이 어떻게 그 데이터를 수집하는지 알아 내야합니다.관심이 있으시면 비 XDebug 솔루션을 제공하여 B (그리고 관심있는 경우 시스템 A)의 서비스 데이터를 수집 할 수있게 해드릴 것입니다. –