1

私は netbeans 7.2.1 と最新の phpunit を使用しています。php クラスを右クリックして netbeans で単体テストを生成したい場合、[ツール] -> [phpUnit テストの作成] を選択すると、スケルトン ジェネレーターがエラーをスローします: そのようなファイルまたはディレクトリはありません。

require_once(/sharedResources/connection.inc.php): failed to open stream: No such file or directory

問題は、require_once に表示されるパスが間違っていることです。これは次のように生成されます。

$sharedResources = getenv("DOCUMENT_ROOT") . "/sharedResources";

絶対ファイルパスに解決する必要があります。アプリケーションがApacheで実行されている場合、これは正常に機能します。ただし、netbeans から実行する場合、getenv("DOCUMENT_ROOT") は間違っているようです。私の質問は、どうすれば正しく設定できますか? 私のアプリケーションは下にあります

getenv("DOCUMENT_ROOT") . "/MyApp";

テストを作成しているファイルは

"MyApp/services"

[プロジェクト プロパティ] の下にオプションの Web ルートがありますが、グレー表示されており、アプリケーションより 1 レベル上のフォルダーに設定することはできません。

どうすればこれを解決できますか?

編集:

さらなる解明:

私は当初、sharedResources への相対ファイルパスを持っていましたが、これも機能しませんでした。DOCUMENT_ROOT は apache によって設定されているため、netbeans での実行時には設定されないため、私はこれに変更しました。したがって、一時的な修正は追加することです

$docRoot = getenv("DOCUMENT_ROOT");
if(empty($docRoot)){
    putenv("DOCUMENT_ROOT=C:/xampp/htdocs");
}

各クラスの先頭に。もちろん、それはあまり実用的でも良い解決策でもありません。この環境変数を設定するか、正しい相対パスを使用するように netbeans に指示する必要があります。

4

1 に答える 1