2013-08-13 28 views
5

Tôi có một loạt các thử nghiệm rspec và khoảng 30 trong số đó là các thử nghiệm không đầu thông qua capybara/poltergeist. Mỗi lần tôi chạy thử nghiệm cục bộ, tất cả 100% bài thi đều vượt qua.kiểm tra rspec/capybara/poltergeist vượt qua 100% cục bộ, kiểm tra ngẫu nhiên không thành công trên máy chủ CI nhóm

Gần đây, tôi đã thiết lập máy chủ tích hợp liên tục cho đội ngũ và kết quả thử nghiệm cực kỳ không nhất quán.

Tôi đã chạy thử nghiệm 10 lần mà không thực hiện bất kỳ thay đổi nào giữa các thử nghiệm. Chỉ 1 trong số các vòng đã vượt qua 100%. Những người khác đã có 1-2 thất bại (hầu hết trong số họ không giống nhau), tất cả liên quan đến thử nghiệm trình duyệt không đầu. Dưới đây là ví dụ về một trong các lỗi:

ActionView::Template::Error: Couldn't find Spree::Address with id=1072978592 

Stack trace: 
./app/models/spree/order_decorator.rb:50:in `initialize_default_address' 
./app/models/spree/order_decorator.rb:42:in `initialize_shipment' 
./app/views/layouts/core.html.erb:23:in `_8cb98e121af585621c1d08e3ec1f6022' 
./app/views/layouts/default.html.erb:14:in `_588b3208edc213a939dffd2ad73f4f26' 

Lỗi này là lạ vì tôi đã phân tích hàm tìm địa chỉ có ID và trả về mô hình factorygirl. Tôi không gặp vấn đề này cục bộ.

Dưới đây là một lỗi từ một trong những lần chạy thử nghiệm:

Capybara::ExpectationNotMet: expected to find link "10" but there were no matches 

Stack trace: 
./spec/features/simply_ship_spec.rb:102:in `block (2 levels) in <top (required)>' 

Một lần nữa, khi tôi chạy này tại địa phương, lỗi này không xảy ra, và khi tôi chuyển sang selen và xem các kiểm tra, liên kết rõ ràng là ở đó.

Cả hai lỗi này (không phải tất cả, nhưng một vài ví dụ) xảy ra riêng lẻ, trên các lần chạy khác nhau, mà không thực hiện bất kỳ cập nhật nào cho dự án. Có ai có bất kỳ ý tưởng tại sao điều này đang xảy ra?

rspec-ray 2.14.0 Capybara 2.1 poltergeist 1.3.0 ray 3.2.14 ruby ​​1.9.3 p448

Trả lời

2

Thật khó để nói mà không nhìn thấy mã của bạn, nhưng có vẻ như bạn có thể có điều kiện chủng tộc trong mã của mình. Nếu tập lệnh của bạn chạy nhanh hơn mã ứng dụng, thì bạn sẽ gặp phải các lỗi không thường xuyên như thế này.

Bạn có thể xem xét những sự cố này đang xảy ra ở đâu và đảm bảo ứng dụng bị bắt kịp trước khi tiếp tục.

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