Tôi nghĩ rằng bạn không muốn ẩn tất cả các cảnh báo, nhưng chỉ những cảnh báo không liên quan. Và trong trường hợp này, các cảnh báo về việc sửa lỗi từ các mô-đun python đã nhập.
Đã đọc tài liệu pytest về Chụp cảnh báo :
Cả hai tùy chọn dòng lệnh -W và filterwarnings tùy chọn ini được dựa trên riêng của Python tùy chọn -W và warnings.simplefilter , vì vậy hãy tham khảo những phần trong tài liệu Python cho ví dụ khác và sử dụng tiên tiến.
Vì vậy, bạn có thể lọc các cảnh báo với -W
tùy chọn của python !
Dường như pytest
loại bỏ hoàn toàn các bộ lọc, vì nó hiển thị tất cả những bộ lọc đó DeprecationWarning
khi chạy và tài liệu của Python về Bộ lọc Cảnh báo Mặc định cho biết rõ ràng:
Trong các bản dựng phát hành thông thường, bộ lọc cảnh báo mặc định có các mục sau (theo thứ tự ưu tiên):
default::DeprecationWarning:__main__
ignore::DeprecationWarning
ignore::PendingDeprecationWarning
ignore::ImportWarning
ignore::ResourceWarning
Vì vậy, trong trường hợp của bạn, nếu bạn muốn cho phép lọc các loại cảnh báo mà bạn muốn bỏ qua, chẳng hạn như những cảnh báo đó DeprecationWarning
, chỉ cần chạy lệnh pytest với -W
tùy chọn:
$ pytest path-to-test-folder -W ignore::DeprecationWarning
CHỈNH SỬA : Từ bình luận của colini , có thể lọc theo mô-đun. Ví dụ để bỏ qua cảnh báo không dùng nữa từ tất cả sqlalchemy:
ignore::DeprecationWarning:sqlalchemy.*:
Sau đó, bạn có thể liệt kê các mô-đun đã cài đặt của mình tạo ra quá nhiều tiếng ồn trong đầu ra của pytest
Sử dụng với tệp thay vì trong dòng lệnh:
Bạn có thể thích liệt kê các bộ lọc đó trong tệp pytest.ini:
[pytest]
filterwarnings =
ignore::DeprecationWarning