2012-10-22 15 views
31

現在、Behat with Mink & Goutte Driverを使用しています。私が開発環境で使用しようとしているのは、app_dev.phpファイル(app_dev.phpファイル、Symfony2スタンダード版)を使用しています。私のテストは正常に動作しています(Gists)。Behat&Mink:テスト環境を使用してください。

しかし、私は(代わりの「DEV」、およびデバッグモードが無効になって「テスト」に設定された環境パラメータを除き、app_devファイルと同じである)app_testファイルを使用したい場合は、ログアウトのシナリオでは、Goutteが "user_signup"識別子を見つけることができないと思われ、 "ログイン"シナリオでは、 "ルート"テキストノードを見つけられません。実際、私がprint last responseを使用している場合、ユーザーはまだログインしていないようです:ユーザーにログインするためのフォームが表示されます...

私は自分の開発環境にいるとき(app_dev) prod environment(app)、すべてがうまくいくように思えます。

(他のファイルが必要と思われる場合は教えてください)

+0

「テスト」環境下では、prodとdev環境のような「PHPSESSID」クッキーではなく、「MOCKSESSID」というセッションIDが含まれているようです。 "クッキー...どのようにクッキー名を変更するためのアイデア? – Talus

+0

私はこのCookieとすべてがうまく動作しているので、私はブラウザで私のapp_testにアクセスできるので、これはセッションのクッキー名にリンクされているとは思わない。問題は、そのクッキーとGoutteについては、「あなたのセッションは期限切れになっているか、またはあなたのクッキーを無効にしました」というメッセージが表示されているようですが、Goutteにクッキーがあることがわかります(私が以前話していたMOCKSESSID)したがって、正方形に戻る... – Talus

+0

セッションIDのクッキーの名前が一致しません。そのセッションID名が設定と再び一致することを確認してください。それ以外の場合は、リクエストごとにセッションが偽装されます。擬似セッションに正しいログインステータスがあるかどうかを確認する必要があります。そうしないと、エラーメッセージが表示されます。 – hakre

答えて

1

デフォルトでは、Minkは「symfony2」というセッションを使用します。そのため、ブラウザとBehatを使用して異なる結果を得ることができます。あなたのbehat.ymlファイルでそれを変更することができます。 http://extensions.behat.org/symfony2/index.html#symfony2-mink-session

+0

それから、 * prod * env、これはミンクと完全に連携していますか?しかし、heh、できるだけ早くこれを試してみると、私はあなたに戻ってきます。 – Talus

関連する問題