2012-04-02 2 views
1

PHPUnit에서 이상한 문제가 있습니다. 저는 PHPUnit 3.6.5를 사용해야하는 개발자 팀과 함께 프로젝트를 진행하고 있습니다. 대부분의 경우 PHPUnit은 훌륭하게 작동하며 다른 개발자의 시스템과 동일한 결과를 산출합니다. 그러나 가끔은 특정 행이 내 컴퓨터에서 다루어지지 않지만 다른 개발자의 기계에서는 볼 수 있습니다. 다음은 최근 시나리오입니다.PHPUnit 코드 적용 범위에 특정 줄이 포함되어 있지 않습니다.

  • Bob은 방금 업데이트 한 새 파일을 체크인합니다. 그는이 파일에 대해 단위 테스트를 통과했으며 코드 커버리지가 95 %임을 확인했습니다. 이 점검을 수행 한 후 파일을 체크인하여 파일이 빌드되고 단위 테스트가 실행됩니다. 유닛 테스트가 서버에서 실패하면 빌드가 빨간색으로 바뀌어 아무도 체크인 할 수 없습니다.
  • 서버가 phpunit 테스트를 실행하고 통과합니다. 자신이 변경 내 자신의 설정을 한 후 억지로 저장소
  • 에서 최신을 얻을 포함

  • 다른 개발자, 나는 응용 프로그램에 대한 phpunit을 시험 전부를 실행,하지만 난 충분하지 않는 파일 중 하나를 통지 코드 적용 범위. Bob이 방금 체크인 한 파일입니다. 팀의 다른 개발자와 확인한 결과, 파일이 문제없이 코드 범위를 통과합니다.

$ 변수 1

array_walk(                       
    $variable1,                       
    function($val,$key) use(&$variableData, &$variable2)            
    {                         
     $variableData[$variable2][$key] = 1;                
    }                         
); 

기능 (발은, $ 키 $)를 사용 (& $ variableData을 & $ 변수 2)

: 나는 코드 커버리지 보고서를 확인할 때, 나는 다음을 참조

이 두 줄은 다룰 수 없습니다! 왜 내 phpunit이 이러한 라인을 커버하고 싶지 않다 이해가 안돼. 다른 개발자와 동일한 버전의 PHPUnit을 사용하고 있기 때문에 자신의 컴퓨터에서는 정상적으로 작동하지만 내 컴퓨터에서는 정상적으로 작동하지 않기 때문에이 문제가 발생한다는 사실을 알지 못하는 설정이 있어야합니다. 나는 또한이 같은 성명에서 같은 문제를보고 있어요 : 이제

if ($var === 1) { 
     echo 'yes'; 
    } else { 
     echo 'nope'; 
    } 

, 단위 테스트는 두 조건을 다룰 것입니다,하지만, 다음 줄에는 적용되지 않습니다 :

을} 다른 {

전혀 이해가 되나요? 가장 이상한 부분은 대부분의 경우 작동하지만 일부 동작이있는 위치가 있지만 원인을 나타내는 패턴이 없습니다. 다른 개발자가 내 컴퓨터에서이 문제를 조사하게 만들었지 만 당황 스럽습니다. 원인을 설명 할 수 없습니다. 문제는, 비록 내가 Bob의 파일을 건드리지는 않았지만 그것이 내 변경 사항을 체크인하는 것을 방해하고 있기 때문이다. 전에이 문제를 겪은 사람이 있습니까? 나는 PHP 유닛을 제거하고 다시 설치하려고 할 것이지만 그 외에는 단어를 잃어 버린다. 어떤 도움이라도 대단히 감사하겠습니다! 여기 내 사양은 다음과 같습니다

PHPUnit : 버전 3.6.5 운영체제 : OS X 10.6.8 PHP : PHP 5.3.8-ZS5.5.0 (CLI) (내장 : 2011년 8월 24일 11시 3분 29초) 젠드 디버거 : 소등이 XDebug가 : 젠드 최적화 + ON한다 :

감사 떨어져

+0

PHPUnit (XDebug를 실행 중)에서 어떤 행이 실행되었는지 *를 알았습니다. 나는 당신의 배열 워크 라인이 인터프리터가 보는 것처럼 실행되지 않는다고 생각한다. 마찬가지로 else {. 당신의 동료들은이 똑같은 라인을 보았습니까? –

+0

... 메모를 더 자세히 읽으십시오. 밥은 좋은 범위를 얻고, 가져오고, 코드를 변경하고, 이제는 적용 범위가 올바르지 않습니까? 깨끗하게 가져 와서 테스트를 실행하면 어떻게됩니까? 왜 자네가 변한 것이 아닌가? –

+0

모두 같은 PHP/xdebug 버전을 실행하고 있습니까? – edorian

답변

1

실행 및 실행 xdebug에 의해 PHPUnit에 행이보고됩니다. xdebug의 다른 버전은 커버 된 것으로보고 된 라인에서 다를 수 있습니다.

정확하지 않다고 생각되면 간단한 테스트 케이스를 제공하고 xdebug's issue tracker에서 버그를여십시오.

관련 문제