2013-02-14 34 views
7

Tôi đang sử dụng Mink và Sahi để kiểm tra giao diện người dùng trong ứng dụng Symfony2. Nhưng trên thực tế tôi không thể quản lý để tải lên một tập tin với Sahi.Không thể tải tập tin lên Sahi/Mink/Behat trong ứng dụng Symfony2

My Sahi máy chủ khởi động và chạy:

[09:51:33] [email protected]:~/Webdev/sahi/bin$ ./sahi.sh 
-------- 
SAHI_HOME: .. 
SAHI_USERDATA_DIR: ../userdata 
SAHI_EXT_CLASS_PATH: 
-------- 
Sahi properties file = /home/coil/Webdev/sahi/config/sahi.properties 
Sahi user properties file = /home/coil/Webdev/sahi/userdata/config/userdata.properties 
Added shutdown hook. 
>>>> Sahi started. Listening on port: 9999 
>>>> Configure your browser to use this server and port as its proxy 
>>>> Browse any page and CTRL-ALT-DblClick on the page to bring up the Sahi Controller 
----- 
Reading browser types from: /home/coil/Webdev/sahi/userdata/config/browser_types.xml 
----- 

bước thực hiện của tôi:

// $element->getXpath() --> (//html/descendant-or-self::*[@id = 'attachment'])[1] 
$element->attachFile($file); 

Lưu ý ở đây rằng nếu tôi sử dụng một tập tin mà không phải là /home/coil/Webdev/sahi/userdata thư mục, tôi nhận được lỗi sau:

$element->attachFile('toto'); 
error:_setFile2(_byXPath("(//html/descendant-or-self::*[@id = 'attachment'])[1]"), "toto") 
     Error: File not found: toto; Base directory is userdata directory: /home/coil/Webdev/sahi/userdata 
     Error: File not found: toto; Base directory is userdata directory: /home/coil/Webdev/sahi/userdata 
     at Sahi._setFile (http://dev.project.com/_s_/spr/concat.js:1398:12) 
     at Sahi._setFile2 (http://dev.project.com/_s_/spr/concat.js:1367:7) 
     at eval (eval at <anonymous> (http://dev.project.com/_s_/spr/concat.js:3480:14), <anonymous>:1:7) 
     at Sahi.ex (http://dev.project.com/_s_/spr/concat.js:3480:9) 
     at <anonymous>:1:11 
     <a href='/_s_/dyn/Log_getBrowserScript?href=null&n=-1'><b>Click for browser script</b></a> 

Vì vậy, Sahi có thể "tìm" tệp vì nó không gây ra bất kỳ lỗi nào với một tệp hợp lệ và hiện có. Nhưng khi biểu mẫu được gửi, tệp Sahi không bao giờ được tải lên.

kiểm tra khác:

  • tôi loại bỏ các bên HTML5 khách hàng và xác nhận hoạt Javascript để chắc chắn không có tác dụng phụ.
  • Tất cả các bài kiểm tra Sahi khác của tôi là Ok, chỉ có 3 với một tải không vượt qua
  • proxy được thiết lập trong trình duyệt thử nghiệm của tôi
  • tôi có thể mở bộ điều khiển Sahi trong trình duyệt mà không vấn đề
  • Same vấn đề trên MaxOsX và Ubuntu
  • Mỗi lần tôi chạy một kiểm tra tải lên, tôi đã có một mục mới trong/userdata/temp/tải tên như sahi_11a83f8806be8046fc0aaa80eac076110b95__fr-fr-2-0.bdic

là gì thực sự kỳ lạ, là tôi chắc chắn rằng những thử nghiệm đó đã trôi qua vài lần trước đây, vì vậy mething phải có thay đổi trong ứng dụng hoặc cấu hình của tôi mà phá vỡ các tập tin tải lên Sahi nhưng tôi không thể tìm thấy những gì. Và trước đó trong giao diện điều khiển Sahi, tôi đã có nhật ký về các tệp mà nó đang tải lên, bây giờ không có nhật ký nào cả.

+0

Bạn đang chạy ứng dụng trong "dev" hoặc trong "production" môi trường? Đó có thể là lý do tại sao bạn không thấy bất kỳ nhật ký nào? – tftd

+0

Nó sử dụng môi trường 'test'. Nhưng tôi đang nói về nhật ký Sahi chứ không phải nhật ký ứng dụng. – COil

Trả lời

1

Địa chỉ mà biểu mẫu được đăng khác với url của trang web? _setFile và _setFile2 lấy tham số thứ ba có thể được định cấu hình để trỏ đến URL hành động (url mà tệp Sahi Proxy đính kèm) http://sahi.co.in/w/_setFile

+0

Bài đăng biểu mẫu trong cùng một URL với chính biểu mẫu: '

' – COil

+0

Tôi cũng đã thử với' _setFile2' trên phiên bản cuối cùng của Sahi, không thành công. – COil

2

Sử dụng đường dẫn hệ thống tuyệt đối mà máy chủ Sahi có quyền truy cập.

+0

Tôi đã thử với '/ tmp/file.doc' mà không thành công. Tôi thực sự cảm thấy rằng một cái gì đó không được cấu hình tốt ở cấp độ proxy. – COil

+0

Có thể. Nhưng tôi chắc chắn tải lên các công trình như bộ thử nghiệm SahiDriver vượt qua. Và nó có trường hợp kiểm tra tải lên tệp:/ – everzet

+0

Nếu bạn chỉ chạy thử nghiệm tải lên, bạn có đăng nhập vào bảng điều khiển '/ bin/sahi.sh' hiển thị tệp đang được tải lên không? – COil