2010-11-29 5 views
1

Zend Framework 앱에서 처음으로 단위 테스트를 설정하고 있습니다. 실제로는 단위 테스트를 처음 수행하고 있습니다.상대 URI가 Zend_Test를 사용하여 문제가 발생했습니다.

class Zend_View_Helper_HeadIncludes extends Zend_View_Helper_Abstract { 

    public function headIncludes($type, $folder) { 
     if($folder == "full" && APPLICATION_ENV == "production") { 
      $folder = "min";    
     } 
     $handler = opendir(getenv("DOCUMENT_ROOT") . "/". $type ."/" . $folder); 
     while ($file = readdir($handler)) { 
      if ($file != "." && $file != "..") { 
       if($type == "js") { 
        $this->view->headScript()->appendFile('/js/' . $folder . '/' . $file); 
       } else if ($type == "css") { 
        $this->view->headLink()->appendStylesheet('/css/' . $folder . '/' . $file); 
       } 
      } 
     } 
     closedir($handler); 
    } 
} 

이 각 뷰 스크립트에 포함됩니다 :

내가 지금 받고 있어요 문제는 내가 내 headscripts와 링크를 포함하는 뷰 헬퍼를 사용한다는 것입니다. opendir()는 테스트 및 응용 프로그램에 대해 동일한 값이 아닌 것처럼 보이는 문서 루트에 상대적으로 "/ css/full"을 찾으려고 시도하기 때문에 테스트를 시도하고 실행하면 실패합니다. 이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 조건을 추가하여 APPLICATION_ENV = "testing"을 할 때 다른 작업을 수행 할 수는 있지만 테스트를 설정해야하는 설정과 상반되게 실행되는지 확실하지 않습니다.

답변

2

'DOCUMENT_ROOT'환경 변수는 웹 서버에서만 설정됩니다. 대신 'APPLICATION_PATH'를 참조로 사용하는 것이 좋습니다. 가상 호스트와 명령 줄 사용에 대해 더 신뢰할 수 있기 때문입니다.

+1

또한, PHPUnit을 사용하는 경우 환경 설정에 도움이되는 사용자 정의 부트 스트랩 파일을 전달할 수 있음을 잊지 마십시오. –

+0

zend에 대한 약간의 변경은 APPLICATION_PATH를 사용하는 것이 었습니다. '/../public', 그렇지 않으면 정확히 내가 필요한 답변 - 건배 – wheresrhys

관련 문제