Próbowałem użyć norecursedirs
opcji wewnątrz setup.cfg, aby powiedzieć py.test, aby nie zbierał testów z niektórych katalogów, ale wygląda na to, że je ignoruje.
[tool:pytest]
norecursedirs=lib/third
Kiedy biegam py.test
, widzę, jak to robi testy od wewnątrz lib/third
!
python
unit-testing
pytest
sorin
źródło
źródło
py.test
ipytest
obaj mają testy biegowe i są różnymi bestiami. Dziwne, alepytest
to zawodzi, ponieważ nie ładuje wykluczeń z[pytest]
.pytest
pochodzi z logilab. Chceszpy.test
.nosecuredirs=lib/third/*
[pytest] norecursedirs = resources
wpytest.ini
robi trick 💪!Odpowiedzi:
py.test --ignore=somedir
pracował dla mnieźródło
--ignore
można określić wiele razy, aby ignorować wiele katalogów-k
opcji, jak pokazuje inna odpowiedź poniżej. Zobacz „Uruchamianie testów według wyrażeń słów kluczowych” na docs.pytest.org/en/latest/… . W tym przypadku pomocne mogą być również znaki. Oznacz swoje testy jako „wolne” itp., A następnie użyj-k "not slow"
--ignore-glob
do ignorowania ścieżek plików testowych na podstawie symboli wieloznacznych w stylu powłoki Unix. Np.--ignore-glob=**/sandbox/*
Zignoruje wszystkie pliki w dowolnymsandbox
folderze.Jeśli masz kilka katalogów z różnymi rodzicami, możesz określić różne
--ignore
parametry:py.test --ignore=somedir --ignore=otherdir --ignore=etcdir
źródło
I rozwiązać tajemnicę: Jeśli sekcja pytest znajduje się w jednej z możliwych plików konfiguracyjnych (
pytest.ini
,tox.ini
isetup.cfg
), pytest nie będzie szukał wszelkich innych więc należy zdefiniować py.test opcje w jednym pliku.Sugerowałbym użycie
setup.cfg
.źródło
setup.cfg
? Obecna dokumentacja wydaje się rekomendować pozostałe dwa.ini
pliku, musisz go określić za pomocąpytest -c pytest.ini
. z jakiegoś powodusetup.cfg
zawartość została odebrana automatycznie.Możesz użyć
py.test -k 'not third'
co wyklucza całą zawartość katalogu „trzeciego”.
źródło
norecursedirs
powinno działać. Sprawdź, czy masz plik pytest.ini lub inne pliki setup.cfg. Jak wzywaszpy.test
?źródło
setup.cfg
w[pytest]
środku właściwe i norecorsedirs, ale wydaje się, że jest ignorowany, a zamiast tego będzie szukał wszystkich plików.W moim przypadku problemem był brakujący symbol wieloznaczny. U mnie działa:
podczas gdy po prostu
norecursedirs = subpath
nie.źródło
Jeśli używasz setup.cfg, trzeba używać
[tool:pytest]
zgodnie http://doc.pytest.org/en/latest/example/pythoncollection.htmlźródło
Aby użyć
pytest.ini
(co jest zalecane, chyba że używasztox
w tym przypadkutox.ini
ma sens), zadzwońpytest
zpytest -c pytest.ini
.W celu zapobieżenia moje próbki
not_me_1.py
inot_me_2.py
od badanego lub lintowane, mojepytest.ini
jest następujące:źródło