2011-02-11 36 views
5

Tôi đang gặp sự cố khi cố gắng lấy ví dụ dưa chuột để chạy dưới selenium. Tôi đang chạySelenium không hoạt động với Cucumber/Capybara (ngoài hộp) - MacOSX

  • Rails3
  • Dưa chuột 0.10.0
  • Capybara 0.4.1.2

Reading doco trên , có thể thấy rằng tất cả những gì tôi cần để có được một ví dụ để chạy dưới selenium là làm như sau:

Bước 1: Tiền tố kịch bản với @javascript

@javascript 
Scenario: User does x 
... 

Bước 2: Cấu hình env.rb nói Capybara mà tài xế sử dụng:

Capybara.javascript_driver = :selenium 

Khi tôi chạy:

bundle exec cucumber feature/myfeature.feature 

tôi nhận được như sau:

Using the default profile... 
F------------F 

Failing Scenarios: 
cucumber features/myfeature.feature:7 # Scenario: User does x 

1 scenario (1 failed) 
12 steps (12 skipped) 
0m0.012s 

Không cửa sổ firefox. Không có gì. Nó chạy, treo và chết.

Vì vậy, để kiểm tra xem Capybara và webdriver selen đang làm việc, tôi đã viết đoạn mã sau:

require 'capybara' 
require 'capybara/dsl' 

Capybara.default_driver = :selenium 

class Test 
    include Capybara 
    def dotest 
    visit('http://www.stackoverflow.com') 
    end 
end 

Test.new.dotest 

Và chạy nó bằng cách sử:

bundle exec ruby /tmp/test.rb 

đó làm việc. Firefox mở cửa sổ và điều hướng đến www.stackoverflow.com.

Vậy làm thế nào tôi có thể nhận được thông tin chẩn đoán để hiểu dưa chuột đang làm gì với capybara?

Tôi đang chạy OSX10., Ruby 1.8.7 và Firefox 3.6.13.

+0

Capybara 0.4.0 đã được nửa năm tuổi. Tôi khuyên bạn nên chạy 'bundle update' - có lẽ điều đó sẽ giải quyết được vấn đề của bạn rồi. –

+0

Tôi hiện đang ở trên Capybara 0.4.1.2. Cùng một vấn đề. – BlueFish

+0

Có cách nào để lấy một số thông tin nhật ký không? – BlueFish

Trả lời

7

Ok ... Tôi đã phát hiện ra sự cố của mình. Một nơi nào đó trong bát dưa chuột là một phụ thuộc vào DatabaseCleaner đang được kích hoạt một lần khi bạn sử dụng trình điều khiển selen. Tuyên bố không thành công:

F______________F 

Đã nói với tôi rằng sự cố đã xảy ra trong quá trình thiết lập và rách. Dưa chuột đã không báo cáo ngoại lệ và ngay cả với -b nó đã không làm bất cứ điều gì.

Làm thế nào tôi thấy vấn đề:

  1. Thêm ruby-debug như một sự phụ thuộc ngọc

  2. Thêm yêu cầu "ruby-debug" để env.rb

  3. tôi đã thêm các tuyên bố sau để env.rb:

Before do 
    breakpoint; 0 
end 
  1. Ran tính năng sử dụng bó exec. Trình gỡ lỗi đã khởi động.

  2. Nhập mèo StandardError sẽ thông báo cho trình gỡ lỗi để ngắt khi "StandardError" bị ném. StandardError là lớp cơ sở cho tất cả các lỗi trong Dưa chuột. Những gì chúng tôi muốn làm là tìm ra nơi mà lỗi đang được ném và tại sao.

  3. Gõ vào tiếp để nói với debugger để tiếp tục

Sau khi thêm cơ sở dữ liệu sạch như một sự phụ thuộc đá quý, tất cả mọi thứ ra đi. Firefox bắt đầu khởi động và mọi thứ bắt đầu hoạt động như được quảng cáo.

+0

Tôi đã có cùng một vấn đề khi ứng dụng không thể kết nối với cơ sở dữ liệu thử nghiệm. Các bước của bạn đã cho tôi một dấu vết ngăn xếp, vì vậy tôi có thể tìm thấy sự cố. –

0

Bạn có thử

bundle exec cucumber feature/myfeature.feature 

!!

+0

Kết quả tương tự. Không thành công với cùng một lỗi. – BlueFish

+0

Bạn có thể lấy thông tin nhật ký kiểm tra bằng cách sử dụng: tail -f log/test.log –

+0

Cảm ơn, nhưng đó không phải là thông tin tôi đang theo dõi. Tôi đang cố gắng tìm ra lý do tại sao dưa chuột/capybara không khởi động firefox để bắt đầu thực hiện kịch bản. Nhật ký kiểm tra không hiển thị điều đó. Nó cho thấy (chính xác) bất kỳ chèn ActiveModel vv vv – BlueFish

Các vấn đề liên quan