2012-03-23 22 views
12

Trong bản dựng của chúng tôi, có một số trường hợp không thành công vì các lý do ngoài tầm kiểm soát của chúng tôi hoặc mất quá nhiều thời gian để gỡ lỗi đúng cách. Những thứ như vậy không đồng bộ javascript, v.v.Các trường hợp tự động chạy lại dưa chuột không thành công với thẻ?

Dù sao thì đôi khi đôi khi chúng hoạt động đôi khi không, vì vậy tôi nghĩ sẽ tốt hơn nếu thêm thẻ vào một trường hợp như @rerun_on_failure hoặc @retry. X số lần trước khi không xây dựng.

Tôi hiểu điều này không phải là một giải pháp lý tưởng, nhưng kiểm tra vẫn có giá trị và chúng tôi muốn giữ nó mà không có âm tính giả

Các thử nghiệm thực tế mà không nhấp chuột vào một liên kết và hy vọng một sự kiện theo dõi để được gửi đến máy chủ để phân tích (qua javascript). Đôi khi trình điều khiển web selen tải trang tiếp theo quá nhanh và sự kiện không có thời gian để gửi.

Cảm ơn

+2

bạn có thể sử dụng wait_until? http://stackoverflow.com/questions/3876412/capybara-doesnt-recognize-dynamically-added-dom-elements – michaeltwofish

+1

chúng tôi sử dụng wait_until cho các thử nghiệm khác nhưng trong trường hợp này nó không áp dụng. Tôi sẽ cập nhật câu hỏi là tại sao. Cảm ơn – amleszk

+0

Tôi không thể không nghĩ rằng móc dưa chuột có thể đạt được điều này. Có thể là một cái móc xung quanh. Tuy nhiên, nó không chỉ đơn giản như tái thực hiện kịch bản bởi vì bạn cần trình điều khiển capybara của bạn để được ở trạng thái đúng là tốt. Tôi đã cố gắng để có được điều này làm việc bản thân mình nhưng tôi đã không thể làm điều đó được nêu ra. – iainbeeston

Trả lời

9

Tôi đã xem xét cách viết một cái gì đó giống như những gì bạn mô tả, nhưng tôi thấy điều này:

http://web.archive.org/web/20160713013212/http://blog.crowdint.com/2011/08/22/auto-retry-failed-cucumber-tests.html

Nếu bạn đang mệt mỏi vì phải tái đá xây dựng trong máy chủ CI của bạn vì lỗi không xác định, bài đăng này là dành cho bạn.

Tóm lại: anh ấy tạo một tác vụ cào mới gọi là dưa chuột: chạy lại rerun.txt để thử lại các thử nghiệm không thành công. Nó sẽ được khá dễ dàng để thêm một số looping trong đó để thử lại nhiều nhất là 3x (ví dụ).

+2

này là thú vị, nhưng tôi muốn chỉ sử dụng điều này như một phương sách cuối cùng. Điều tốt nhất cần làm là loại bỏ tất cả các hành vi không xác định khỏi các thử nghiệm. –

+0

@Mark Điều này là khá khó khăn cho các bài kiểm tra javascript mà không phải không xác định cho các lý do không xác định –

3

More phiên bản gần đây của dưa chuột có một lá cờ retry

cucumber --retry 2 

Sẽ thử lại kiểm tra hai lần nếu nó không thành công

+0

Điều này nên chọn câu trả lời mới. Ngay cả khi câu trả lời của neomindryan là tuyệt vời vào thời điểm đó, câu trả lời này làm cho nó hoàn toàn lỗi thời. – sergut

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