3

PHPUnit でいくつかの機能テストを行おうとしていますが、config.yml の storage_id オプションに session.storage.filesystem を追加する必要があります。
これにより、何らかの理由でログイン プロセスが失敗します。test.log に次のエラーが表示されます:
認証要求が失敗しました: セッションがタイムアウトしたか、Cookie が無効になっています。
その後、再度ログイン ページにリダイレクトされます。Cookie を有効にしており、そのオプションを設定しなくても (ネイティブ セッション ストレージを使用して) アプリケーションが動作することは確かです。
この問題の解決策があるかどうか誰か教えてもらえますか?

4

1 に答える 1

0

キャッシュ フォルダーのファイル アクセス許可を変更してみてください。それらが正しく設定されていない場合、次のようになります。

  • あなたは何かを開発し、あなたのウェブブラウザを通してそれをテストします=>あなたのApache(または他のサーバー)はキャッシュを作成し、それに対する権限を持つ唯一のものになります
  • コマンドラインからphpunitテストを開始します(別のUNIXユーザー)=>現在のUNIXユーザーにはキャッシュフォルダーへの書き込みアクセス権がなく、セッションを保存できません。

これが事実であることを検証するための即時修正:

chmod -R 777 app/cache/
phpunit -c app/

これが実際に当てはまる場合は、権利を適切に設定する方法を確認してください: http://symfony.com/doc/current/book/installation.html#configuration-and-setup

于 2012-10-29T07:00:19.790 に答える