2011-07-22 13 views
0

私はこの問題に深刻な影響を受けています。私はユニットテストを実行するためにsimpletestを使うことを学んでいます。私のサンプル・テスト・クラスの1つでは、ファイルを取り込み、そのコンテンツを処理するパーサーをテストしています。PHPの簡単なテストで問題が発生する

私は、パーサーをテストするためのサンプルコンテンツを含むファイルを作ることにしました。このファイルはサブディレクトリに存在していました。 fopen()fwrite()を実行した後も、ファイルが存在しないというエラーが発生しました。私はfile_exists()を試して、それもfalseを返します。その後、パスを削除してファイル名のみを残しましたが、今回は正常に機能しましたが、ファイルが見つかりませんでした。テストクラスからコードを移動して実行したところ、正常に動作し、ファイルは現在の作業ディレクトリにありました。

テストメソッドでコードを実行すると、現在のディレクトリ以外の場所にファイルが作成されるようです。それは問題です、私はファイルを見つけることができません。私は深い検索を行った、手動で私のWAMPフォルダを通過し、まだ​​それを見つけることができません。

誰かが私を助けてくれたら嬉しいです。 私はwampserver 2.0iでPHP 5.3.5を実行しています。 Simpletestはバージョン1.1のAlpha 3です。ありがとうございました。

+1

fopenへの絶対パスを指定するだけですか? – JohnKlehm

+0

それは動作します。ありがとう。まだファイルがどこにあるのだろうと思っています。 @ジョン – frostymarvelous

+0

おそらく許可の問題... – Warface

答えて

3

getcwd http://php.net/manual/en/function.getcwd.phpを呼び出すと、現在の作業ディレクトリを取得できます。

+0

さて、それは実際に働いた。メソッド内のcwdはB:\ wamp \ bin \ apache \ Apache2.2.11です。なぜ私は不思議です。ありがとう。私が変更を期待していないので、単純にcwdを確認するのは私には起こりませんでした。しかし、なぜ内部のApacheですか? :? – frostymarvelous

+0

このスクリプトは、Apacheサービス/デーモンによって実行されるため、作業ディレクトリは一般に実行可能ファイルの場所です。 – JohnKlehm

+0

それは単純なスクリプトですか?なぜ私の他のスクリプトでもそれは起こりませんか?この上の任意のリソース?ありがとう。 – frostymarvelous

関連する問題