2012-10-22 2 views
31

현재 Behat with Mink & Goutte 드라이버를 사용하고 있습니다. 내가 app_dev.php 파일 (Symfony2 표준판의 app_dev.php 파일)을 통해 내 개발 환경에서 사용하려고 할 때 내 테스트는 잘 작동한다 (Gists).Behat & Mink : 테스트 환경을 사용하십시오.

그러나, 나는 ( 대신 의 "DEV" 및 디버그 모드가 해제 "테스트"로 설정 환경 매개 변수를 제외하고 app_dev 파일과 동일하다)는 app_test 파일을 사용하려는 경우, 로그 아웃 시나리오에서 Goutte가 "user_signup"식별자를 찾을 수없고 "로그인"시나리오에서 "루트"텍스트 노드를 찾지 못하는 것 같습니다. 실제로 print last response을 사용할 때 사용자가 로그인하지 않은 것으로 보입니다. 사용자에게 로그인 할 수있는 양식이 계속 표시됩니다 ...

내 개발 환경 (app_dev) 또는 환경을 자극 (app), 모든 것이 잘 작동하는 것 같습니다 ... 어떤 생각?

(다른 파일이 필요하다고 생각되면 알려주세요).

+0

일부 새로운 뉴스 : "테스트"환경에서는 prod 및 dev 환경과 마찬가지로 세션 ID가 포함 된 "PHPSESSID"쿠키가 아닌 것으로 보이지만 "MOCKSESSID "쿠키 ... 쿠키 이름을 변경하는 방법에 대한 아이디어가 있습니까? – Talus

+0

브라우저에서 내 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