2012-08-07 3 views
1

저는 PHPUnit으로 모듈 테스트를 실행 중이며 테스트에 대한 커버리지 리포트를 얻고 싶습니다. 나는 과거에 이것을 성공적으로 해왔지만 어떻게 든 다시 작동하지 못하고 왜 더 이상 작동하지 않는지 전혀 모른다. 유일한 차이점은 이제 5.3 대신 PHP 5.4를 실행한다는 것입니다.PHPUnit에서 0 % 코드 커버리지

시험은 exec 명령으로 Ant 빌드 파일에서 실행됩니다 : 내 테스트를 실행할 때

다음
<exec dir="${basedir}" executable="phpunit.bat" failonerror="${test.failonerror}"> 
    <arg value="--log-junit" /> 
    <arg value="${test.phpunit.log}" /> 
    <arg value="--coverage-clover" /> 
    <arg value="${test.phpunit.coverage.log}" /> 
    <arg value="--bootstrap" /> 
    <arg value="${test.phpunit.bootstrap}" /> 
    <arg value="${test.phpunit.testdir}" /> 
</exec> 

는 개미 로그의 조각입니다 : 로그에서

module-test-php: 
    [exec] PHPUnit 3.6.12 by Sebastian Bergmann. 
    [exec] ............. 
    [exec] Time: 5 seconds, Memory: 8.75Mb 
    [exec] OK (13 tests, 113 assertions) 
    [exec] Generating code coverage report in Clover XML format ... done 

을, 보험 보상보고가 작동해야하는 것으로 보입니다. 그러나 보고서를 열면이게됩니다.

<?xml version="1.0" encoding="UTF-8"?> 
<coverage generated="1344329670"> 
    <project timestamp="1344329670"> 
    <metrics files="0" loc="0" ncloc="0" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/> 
    </project> 
</coverage> 

일부 설정이 있습니까? 나는 여기에서 놓치고있다, 또는, 나는 왜 제로 적용을 얻 느냐?

업데이트는 좀 더 많은 테스트를하고의 Phar 아카이브에 관한 버그를 발견했다. 문제가보고되었습니다.

https://github.com/sebastianbergmann/php-code-coverage/issues/107

답변

0

코드 커버리지는 소스 코드 형태에 관한 것입니다. 소스 코드 형식은 사용자가 변경 한 소프트웨어의 변형입니다.

phar 파일은 보관 파일입니다. Zend Encoder 또는 Ioncube Encoder 또는 심지어 APC로 인코딩 된 PHP 코드와 마찬가지로 코드 커버리지는 더 중요하게 작용하지 않습니다. 코드 범위는 메트릭으로 이러한 파일에서 작동하지 않습니다.

궁금한 점이 있으니 두 번 궁금해하고 왜 이런 식으로 생각해보십시오. phar 파일에 대한 코드 커버리지가 왜 유용하지 않은지에 대한 설명을 찾아보십시오.

관련 문제