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?
8
A
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.
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! –
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. –