2012-10-22 42 views
31

Tôi hiện đang sử dụng Behat with Mink & Trình điều khiển Goutte. Khi tôi đang cố gắng sử dụng nó với môi trường dev của mình, thông qua tệp app_dev.php, là tệp app_dev.php điển hình từ Symfony2 Standard Edition, các thử nghiệm của tôi đang hoạt động tốt (Gists).Behat & Mink: Sử dụng môi trường kiểm tra

Nhưng, nếu tôi muốn sử dụng một tập tin app_test (đó là tương tự như các tập tin app_dev, trừ các thông số môi trường thiết lập để "test" thay vì "dev", và chế độ gỡ lỗi vô hiệu hóa), trên kịch bản đăng xuất, có vẻ như Goutte không thể tìm thấy định danh "user_signup" và trong kịch bản "đăng nhập", nó không tìm thấy nút văn bản "Gốc". Thật vậy, khi tôi đang sử dụng print last response, có vẻ như người dùng chưa đăng nhập: Tôi vẫn thấy biểu mẫu để đăng nhập người dùng ...

Khi tôi ở trong môi trường dev (app_dev) hoặc prod môi trường (app), tất cả mọi thứ có vẻ là làm việc tốt mặc dù ... Bất kỳ ý tưởng?

(Nếu bạn nghĩ bạn cần một số tệp khác, vui lòng cho tôi biết).

+0

Một số tin tức mới: có vẻ như trong môi trường "thử nghiệm", nó không phải là cookie "PHPSESSID" chứa id phiên, như trên môi trường sản xuất & dev, nhưng "MOCKSESSID "cookie ... Bất kỳ ý tưởng làm thế nào để thay đổi tên cookie? – Talus

+0

Nevermind, tôi không nghĩ rằng điều này được liên kết với tên cookie phiên, vì tôi có thể truy cập app_test trong trình duyệt của mình, có cookie này và mọi thứ hoạt động tốt. Có vẻ như với cookie đó và trên Goutte, tôi có thông báo "Phiên của bạn đã hết hạn hoặc bạn đã tắt cookie", nhưng tôi có thể thấy rằng Goutte có cookie (MOCKSESSID tôi đã nói về trước đó), quay lại hình vuông ... – Talus

+0

Tên của cookie phiên id không phù hợp. Kiểm tra cấu hình của bạn rằng tên id phiên đó khớp lại với cấu hình của bạn. Nếu không, phiên sẽ được mô phỏng theo từng yêu cầu và bạn cần phải cẩn thận rằng phiên được giả lập có trạng thái đăng nhập chính xác nếu không bạn sẽ thấy thông báo lỗi được cho biết. – hakre

Trả lời

1

Theo mặc định, Mink sử dụng phiên được gọi là "symfony2". Đó là lý do tại sao bạn nhận được kết quả khác nhau truy cập từ trình duyệt và sử dụng Behat. Bạn có thể thay đổi điều đó trong tệp behat.yml của mình. Kiểm tra tài liệu này để biết thêm thông tin: http://extensions.behat.org/symfony2/index.html#symfony2-mink-session

+0

Sau đó, tại sao nó khác với * prod * env, làm việc hoàn hảo với chồn? Nhưng heh, tôi sẽ thử nó ngay khi có thể, và tôi sẽ quay lại với bạn. – Talus