问题
I tried to use the norecursedirs option inside setup.cfg to tell py.test not to collect tests from certain directories but it seems it does ignore it.
[tool:pytest]
norecursedirs=lib/third
When I run py.test
I do see how it does get tests from inside lib/third
!
回答1:
py.test --ignore=somedir
worked for me
回答2:
I solved the mystery: If a pytest section is found in one of the possible config files (pytest.ini
, tox.ini
and setup.cfg
), pytest will not look for any others so be sure you define the py.test options in a single file.
I would suggest using setup.cfg
.
回答3:
If you have several directories with different parents you can specify different --ignore
parameters:
py.test --ignore=somedir --ignore=otherdir --ignore=etcdir
- new option: --ignore will prevent specified path from collection.
Can be specified multiple times.
回答4:
You can use
py.test -k 'not third'
that excludes all 'third' directory contents.
回答5:
norecursedirs
should work. Check whether you have a pytest.ini or other setup.cfg files. How are you invoking py.test
?
回答6:
If you are using setup.cfg, you have to use [tool:pytest]
as per http://doc.pytest.org/en/latest/example/pythoncollection.html
# content of pytest.ini
# can also be defined in tox.ini or setup.cfg file, although the section
# name in setup.cfg files should be "tool:pytest"
回答7:
In my case, the issue was the missing wildcard. The following works for me:
[tool:pytest]
norecursedirs = subpath/*
whereas just norecursedirs = subpath
didn't.
来源:https://stackoverflow.com/questions/11117062/how-to-tell-py-test-to-skip-certain-directories