2010-11-29 17 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'は、Webサーバーによってのみ設定されます。仮想ホスト間での信頼性が向上し、コマンドラインでの使用が容易なため、代わりに 'APPLICATION_PATH'を参照として使用することができます。

+1

また、PHPUnitを使用している場合は、環境設定に役立つカスタムブートストラップファイルを渡すことができます。 –

+0

zendのわずかな変更は、APPLICATION_PATHを使用することでした。 '/../ public'、それ以外は私が必要としていた答え - 歓声 – wheresrhys

関連する問題