In thời gian thực hiện kiểm tra và ghim các kiểm tra chậm với py.test


117

Tôi đang chạy kiểm tra đơn vị trên máy chủ CI bằng py.test. Kiểm tra sử dụng tài nguyên bên ngoài được tìm nạp qua mạng. Đôi khi người chạy thử mất quá nhiều thời gian, khiến người chạy thử bị bỏ dở. Tôi không thể lặp lại các vấn đề cục bộ.

Có cách nào để khiến py.test in ra thời gian thực thi của thử nghiệm (chậm), để việc ghim các thử nghiệm có vấn đề trở nên dễ dàng hơn không?

Câu trả lời:


171

Tôi không chắc điều này sẽ giải quyết được vấn đề của bạn, nhưng bạn có thể vượt qua --durations=Nđể in các Nbài kiểm tra chậm nhất sau khi bộ kiểm tra kết thúc.

Sử dụng --durations=0để in tất cả.


88
Nếu bạn vượt qua --durations=0thời gian thực hiện cho TẤT CẢ các bài kiểm tra sẽ được báo cáo.
oLas

Bạn có biết liệu có khả năng thêm nó vào báo cáo phù hợp HTML đã tạo không? Tương tự như thêm .coveragerctệp với nội dung [run] branch = Truethêm thông tin vùng phủ phân nhánh?
Martin Thoma

Bạn sẽ cần phải tự thêm thông tin đó, pytest-html có hỗ trợ chèn thêm nội dung.
Bruno Oliveira,

4
@oLas: Không đúng: Nếu các bài kiểm tra "quá nhanh", thời gian đo được rõ ràng có thể trở thành 0 và chúng vẫn sẽ bị lọc ra. Ngưỡng âm cũng không giúp ích gì trong trường hợp này. Một điều khó chịu khác với cách tiếp cận này là pytest sẽ luôn in ra (0.00 durations hidden. Use -vv to show these durations.)mà không có ý nghĩa gì.
bluenote10

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.