2013-01-09 27 views
8

Thử nghiệm của chúng tôi mất khá nhiều thời gian để chạy và luôn có khoảng thời gian 5-10 phút mà chúng tôi biết thử nghiệm nào đã thất bại, nhưng chúng tôi không thể thấy thông báo lỗi hoặc backtrace cho đến khi bộ phần mềm kết thúc. Nó sẽ hiệu quả hơn để xem các backtraces khi chúng xảy ra. Điều này có thể không?Làm thế nào bạn có thể nhận được rspec để in backtraces kiểm tra thất bại * như * nó đang chạy?

Trả lời

10

Bạn có hai lựa chọn:

1) thất bại nhanh

# spec/spec_helper.rb 
RSpec.configure do |c| 
    c.fail_fast = true 
end 

..or sử dụng nó từ dòng lệnh

$ bundle exec rspec spec/ --fail-fast 
.F 

Failures: 
    1) Swinger should set the Capybara driver 
    Failure/Error: Capybara.current_driver.should_not == :rack_test 

Finished in 0.00479 seconds 
2 examples, 1 failure 

Về cơ bản tùy chọn này lỗi sẽ dừng bộ kiểm tra và nó sẽ in lỗi.

2) sử dụng rspec-instafail đá quý

https://github.com/grosser/rspec-instafail

đá quý này sẽ hiển thị spec thất bại ngay lập tức và nó sẽ tiếp tục chạy thông số kỹ thuật.

+0

fail_fast là đóng nhưng nó dừng phần còn lại của các bài kiểm tra chạy sau khi thất bại đầu tiên. Để họ tiếp tục chạy tốt hơn, vì vậy rspec-instafail đã hoạt động rất tốt! (sau khi một troll ngắn kết hợp nó với Guard https://github.com/grosser/rspec-instafail/issues/13) Cảm ơn một tấn! Bạn vừa mới cứu tôi một khoảng thời gian. –

5

Tôi sử dụng Fuubar để nhận thông báo lỗi và backtraces ngay lập tức trong khi bộ tiếp tục, cũng như nhận được chỉ báo có ý nghĩa hơn về mức độ mà bộ thử nghiệm của tôi đã tiến triển.

+0

Fuubar trông khá tuyệt vời. Cảm ơn! –

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