Saya mencoba menggunakan norecursedirs
opsi di dalam setup.cfg untuk memberi tahu py.test untuk tidak mengumpulkan tes dari direktori tertentu tetapi tampaknya itu mengabaikannya.
[tool:pytest]
norecursedirs=lib/third
Ketika saya menjalankan, py.test
saya melihat bagaimana ia mendapatkan tes dari dalam lib/third
!
python
unit-testing
pytest
sorin
sumber
sumber
py.test
danpytest
keduanya menjalankan tes dan menjadi binatang yang berbeda. Aneh tetapipytest
yang gagal karena tidak memuat pengecualian dari[pytest]
.pytest
berasal dari logilab. Kamu maupy.test
.nosecuredirs=lib/third/*
[pytest] norecursedirs = resources
dalampytest.ini
melakukan trik! 💪Jawaban:
py.test --ignore=somedir
bekerja untuk sayasumber
--ignore
dapat ditentukan beberapa kali untuk mengabaikan beberapa direktori-k
opsi seperti yang ditunjukkan jawaban lain di bawah ini. Lihat "Menjalankan pengujian dengan ekspresi kata kunci" di docs.pytest.org/en/latest/… . Marks mungkin berguna di sini juga. Tandai tes Anda sebagai "lambat", dll dan kemudian gunakan-k "not slow"
--ignore-glob
untuk mengabaikan jalur file pengujian berdasarkan wildcard gaya shell Unix. Misal--ignore-glob=**/sandbox/*
akan mengabaikan semua file disandbox
folder manapun .Jika Anda memiliki beberapa direktori dengan induk yang berbeda, Anda dapat menentukan
--ignore
parameter yang berbeda :py.test --ignore=somedir --ignore=otherdir --ignore=etcdir
sumber
Saya memecahkan misterinya: Jika bagian pytest ditemukan di salah satu file konfigurasi yang mungkin (
pytest.ini
,tox.ini
dansetup.cfg
), pytest tidak akan mencari yang lain jadi pastikan Anda menentukan opsi py.test dalam satu file.Saya akan menyarankan menggunakan
setup.cfg
.sumber
setup.cfg
? Dokumentasi saat ini tampaknya merekomendasikan dua lainnya.ini
file, Anda perlu menentukannyapytest -c pytest.ini
. untuk beberapa alasan,setup.cfg
konten diambil secara otomatis.Kamu bisa memakai
py.test -k 'not third'
yang mengecualikan semua konten direktori 'ketiga'.
sumber
norecursedirs
harus bekerja. Periksa apakah Anda memiliki pytest.ini atau file setup.cfg lainnya. Bagaimana Anda memohonpy.test
?sumber
setup.cfg
dengan yang tepat[pytest]
dan norecorsedir di dalamnya tetapi tampaknya diabaikan, dan sebaliknya akan mencari semua file.Dalam kasus saya, masalahnya adalah wildcard yang hilang. Pekerjaan berikut untuk saya:
padahal
norecursedirs = subpath
tidak.sumber
Jika Anda menggunakan setup.cfg, Anda harus menggunakan
[tool:pytest]
sesuai http://doc.pytest.org/en/latest/example/pythoncollection.htmlsumber
Untuk menggunakan
pytest.ini
(yang disarankan, kecuali jika Anda menggunakantox
dalam haltox.ini
ini masuk akal), panggilpytest
denganpytest -c pytest.ini
.Untuk mencegah sampel saya
not_me_1.py
dannot_me_2.py
agar tidak diuji atau diikat, sayapytest.ini
adalah sebagai berikut:sumber