3

デフォルトの「テスト」環境以外のカスタム環境で、RESTAPIのSymfony2PHPユニットテストを実行しようとしています。

目的は、残りのAPIをデプロイした後、任意の環境(int、prodなど)で迅速な健全性チェックを実行できるようにすることです。

新しいカーネル/クライアントを作成するときに、環境をWebTestCaseクラスに渡すことができました。私の問題は、次のエラーが発生することです。

「セッションIDが長すぎるか、不正な文字が含まれています。有効な文字はaz、AZ、0〜9です。」

config。[targetenvironment].ymlでセッションストレージをファイルシステムに変更することでこれを修正できますが、たとえば本番環境ではファイルシステムストレージを使用したくありません。

framework:
    test: ~
    session:
        storage_id: session.storage.filesystem

この問題を回避する方法はありますか?

ありがとう

4

1 に答える 1

0

PHPUnitマニュアルの第11章には、ファイルシステムのモックに関するセクションがあります。これは基本的にすべてのファイルシステム呼び出しをインターセプトするため、実行するテストに副作用がないことを確認してください。これにより、関数を直接呼び出す場合(つまり、PHPUnitを実行しているphpインスタンスがコードを実行している場合)の問題が解決するはずです。

ただし、呼び出しがWebサーバーを経由している場合、PHPUnit構成はリモート環境を制御できません。その場合、クライアントのIPアドレスユーザーエージェント文字列に基づいて環境変数を設定する特別なApache構成を試してから、コードでその環境変数を使用してデフォルトのセッションストレージなどをオーバーライドできます。 。

于 2012-06-21T23:55:07.017 に答える