2012-05-29 18 views
13

मैं अपने पैकेज पर py.test चलाने की कोशिश कर रहा हूं लेकिन यह प्रोजेक्ट रूट निर्देशिका से setup.py को पार्स करने का प्रयास कर रहा है, भले ही मैंने इसे बाहर करने का प्रयास किया हो।ERROR py.test चलाने की कोशिश करते समय setup.py एकत्र कर रहा है?

मुझे * .py फ़ाइलों से परीक्षण एकत्र करने की आवश्यकता है क्योंकि परीक्षण कक्षाओं को मॉड्यूल में शामिल किया गया है।

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

फिर भी यह मुझे ERROR collecting setup.py जो मैं पहले ही बाहर है दे देंगे जब मैं py.test चलाते हैं।

/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 

उत्तर

19

आप इस शायद की तरह अपने pytest.ini विन्यास को --ignore विकल्प को कॉन्फ़िगर कर सकते हैं:

addopts = --ignore=setup.py 

जो अगर आप रूट निर्देशिका में कर रहे हैं और करने के लिए py.test चाहते मदद करनी चाहिए setup.py फ़ाइल को अनदेखा करें।

+0

अरे, इसका मतलब है कि अगर मेरे पास कोई अन्य 'setup.py' है तो इसे भी शामिल किया जाएगा। इसके अलावा, टोक्स मूल निर्देशिका में tox.ini को देखने में सक्षम नहीं है ?! – sorin

+1

अन्य setup.py फ़ाइलों को शामिल करने से बचने के लिए मुझे लगता है कि pytest.ini को सटीक स्थानों जैसे --ignore = {inidir} /setup.py या अन्य निर्दिष्ट करने की अनुमति देने की आवश्यकता होगी। – hpk42

2

डॉक्स (और वेरिएबल का नाम) यह norecursedirs की तरह लग रहा से केवल निर्देशिकाओं को छोड़ देता है, तो setup.py के बाद से, एक फाइल है norecursedirs में डालने कोई प्रभाव नहीं है।

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

+0

धन्यवाद,: इस तरह के मामलों के लिए आप गतिशील रूप से एक conftest.py फ़ाइल में सूचीबद्ध करके उनका ध्यान नहीं दिया जा करने के लिए फ़ाइलों को परिभाषित कर सकते हैं। फिर भी यह मेरी समस्या का समाधान नहीं करता है। इनमें से मुझे लगता है कि 'py.test' को' setup.py' लोड करने से रोकना असंभव है यदि आप '* .py' देखना चाहते हैं। फिर भी त्रुटि प्रकट होती है क्योंकि 'py.test'' setup.py' निष्पादित करने का प्रयास कर रहा है। हो सकता है कि मैं इसे 'py.test' दोस्ताना बनाने के लिए setup.py के साथ कुछ कर सकता हूं। – sorin

0

Jedi में हमने collect_ignore = ["setup.py"] की सामग्री के साथ conftest.py फ़ाइल जोड़कर इसे हल किया है। यह इसे "जादुई" काम करता है।

IMHO py.test को setup.py को अनदेखा करना आसान बनाना चाहिए, क्योंकि यह एक बहुत ही सामान्य उपयोग केस है।

1

pytest डॉक्स जवाब दूर here. दफन फ़ाइलें आप pytest चाहते अनदेखी करने के लिए सूचीबद्ध करता है अपनी परियोजना के रूट निर्देशिका में एक conftest.py फ़ाइल डाल दिया है:

हालांकि, कई परियोजनाओं एक setup.py होगा जिसे वे आयात नहीं करना चाहते हैं। इसके अलावा, फाइलें केवल एक विशिष्ट पायथन संस्करण द्वारा आयात योग्य हो सकती हैं। यह टिप्पणी करते के लिए


# content of conftest.py 
import sys 

collect_ignore = ["setup.py"] 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^