EROARE colectarea setup.py în timp ce încercați să rulați py.test?

Încerc să rulez py.test în pachetul meu, dar încearcă să parseze setup.py din directorul rădăcină al proiectului chiar dacă am încercat să îl exclud.

Trebuie să colectez testele din fișierele .py deoarece clasele de test sunt incluse în module.

# setup.cfg
[pytest]
norecursedirs = .svn _build tmp* lib/third lib *.egg bin distutils setup.py
python_files = *.py

Totuși, când rulez py.test , îmi dau ERROR collecting setup.py pe care deja l-am exclus.

/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/core.py:140: in setup
>           raise SystemExit, gen_usage(dist.script_name) + "\nerror: %s" % msg
E           SystemExit: usage: py.test [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
E              or: py.test --help [cmd1 cmd2 ...]
E              or: py.test --help-commands
E              or: py.test cmd --help
E           
E           error: no commands supplied
13

4 răspunsuri

Puteți configura opțiunea --ignore la configurația pytest.ini ca aceasta:

addopts = --ignore=setup.py

care ar trebui să vă ajute dacă sunteți în directorul rădăcină și doriți ca py.test să ignore fișierul setup.py.

19
adăugat
La naiba, înseamnă că dacă mai am un setup.py , va fi de asemenea inclus. De asemenea, toxul nu este capabil să caute tox.ini în directoarele mamă ?!
adăugat autor sorin, sursa
Pentru a evita includerea altor fișiere setup.py, cred că pytest.ini ar avea nevoie de o modalitate de a permite specificarea locațiilor exacte, cum ar fi --ignore = {inidir} /setup.py sau cam asa ceva.
adăugat autor hpk42, sursa

Din docs (și numele variabilei) se pare că norecursedirs ignoră numai directoarele, din moment ce setup.py este un fișier, punându-l în norecursedirs nu are efect.

http://pytest.org/latest/customize.html?highlight=norecursedirs # confval-norecursedirs

2
adăugat

Documentele de probă au răspuns îngropat aici. Puneți un fișier conftest.py în directorul rădăcină al proiectului dvs. care listează fișierele pe care doriți să le ignorați pytest :

Cu toate acestea, multe proiecte vor avea un setup.py pe care nu doresc să fie importate. Mai mult decât atât, fișierele pot fi importate numai de o versiune python specifică. Pentru astfel de cazuri, puteți defini dinamic fișierele care trebuie ignorate prin înscrierea acestora într-un fișier conftest.py:

     
  # conținut din conftest.py
 import sys

 collect_ignore = ["setup.py"]
 
     
1
adăugat

În Jedi am rezolvat acest lucru prin adăugarea unui fișier conftest.py cu conținutul collect_ignore = ["setup.py"] . Asta face ca "să lucreze magic".

IMHO py.test ar trebui să ușureze ignorarea setup.py , deoarece acesta este un caz tipic de utilizare.

0
adăugat
Python România
Python România
100 participanți

Comunitatea pasionaților de Python din România.