Saya pikir Anda tidak ingin menyembunyikan semua peringatan, tetapi hanya yang tidak relevan. Dan dalam hal ini, peringatan depreksi dari modul python yang diimpor.
Membaca dokumentasi pytest tentang Warnings Capture :
Kedua opsi baris perintah -W dan opsi ini filterwarnings didasarkan pada opsi -W dan warnings.simplefilter milik Python , jadi silakan merujuk ke bagian tersebut dalam dokumentasi Python untuk contoh lain dan penggunaan lanjutan.
Jadi Anda bisa memfilter peringatan dengan -W
opsi python !
Tampaknya itu pytest
benar - benar menghapus filter, karena itu menunjukkan semua itu DeprecationWarning
saat berjalan, dan dokumentasi Python tentang Filter Peringatan Default dengan jelas mengatakan:
Dalam build rilis reguler, filter peringatan default memiliki entri berikut (dalam urutan prioritas):
default::DeprecationWarning:__main__
ignore::DeprecationWarning
ignore::PendingDeprecationWarning
ignore::ImportWarning
ignore::ResourceWarning
Jadi dalam kasus Anda, jika Anda ingin mengatakan untuk memfilter jenis peringatan yang ingin Anda abaikan, seperti itu DeprecationWarning
, jalankan saja perintah pytest dengan -W
opsi:
$ pytest path-to-test-folder -W ignore::DeprecationWarning
EDIT : Dari komentar colini , dimungkinkan untuk memfilter berdasarkan modul. Contoh untuk mengabaikan peringatan penghentian dari semua sqlalchemy:
ignore::DeprecationWarning:sqlalchemy.*:
Anda kemudian dapat membuat daftar modul yang Anda instal yang menghasilkan terlalu banyak noise pada output pytest
Gunakan dengan file daripada di baris perintah:
Anda mungkin lebih suka mencantumkan filter tersebut di file pytest.ini:
[pytest]
filterwarnings =
ignore::DeprecationWarning