-1

私はZFアプリケーションを書いています。ライブラリディレクトリにいくつかの抽象的な親クラスがありました。Netbeansは、子クラスのテストスケルトンを問題なく生成でき、テストを問題なく実行できました。

その後、抽象親をライブラリからアプリケーションディレクトリに移動することにしました(読みやすさを向上させるため)。それに応じてアプリケーションコードを更新しましたが、問題なく動作します。

ただし、netbeansを使用して子クラスのテストスケルトンを生成すると、親が見つからないという致命的なエラーが発生します。次に、テストクラスを手動で作成し、コマンドラインから実行したところ、PHPUnitで同じエラーが発生しました。

このパスを正しく機能させるには、何をする必要がありますか?PHPUnitブートストラップで、アプリケーションディレクトリをインクルードパスに追加し、アプリケーションを名前空間としてZendオートローダーに登録してみました。これは推奨される方法ではないと思いますが、とにかく失敗しました...

私は本当にパスの問題、ファイルの検索などに苦労しています...

どんな援助も大歓迎です。

4

1 に答える 1

0

これで、クラスをライブラリからコア コード ディレクトリに移動できます。コア コードは、ZF によって自動化された標準の命名規則に準拠しているため、クラスを問題なく検出します。

ただし、他のアプリケーション (PHPUnit など) はそれらを見つけることができません。オートローディングを同じ ZF に設定することで、これを回避できました。あるいは、require_once を使用して必要なファイルを組み込むこともできます (これにより、そもそもオートロードの使用が無効になります)。

したがって、私の最善の策は、共有クラスをライブラリに戻すことです。私の元の PHPUnit ブートストラップは、ライブラリ プレフィックスを ZF オートローダーに追加するので、準備完了です。

全体として、私はライブラリのもう 1 つの有効な使い方を学びました。

[編集:] 別の代替...

私のテストクラスは、PHPUnit のオートローディングをセットアップする Zend Application をブーストしています。この方法の唯一の欠点は、PHPUnit (私の netbeans IDE 経由) がスケルトン テストを作成できないことです。私はそれと一緒に暮らす必要があると思います。

于 2012-06-27T01:20:42.993 に答える