कुछ निर्देशिकाओं को छोड़ने के लिए py.test को कैसे बताएं?


91

मैंने norecursedirspy.test को कुछ निर्देशिकाओं से परीक्षण एकत्र नहीं करने के लिए बताने के लिए setup.cfg के अंदर विकल्प का उपयोग करने की कोशिश की, लेकिन ऐसा लगता है कि यह इसे अनदेखा करता है।

[tool:pytest]
norecursedirs=lib/third

जब मैं दौड़ता py.testहूं तो मैं देखता हूं कि यह कैसे अंदर से परीक्षण करता है lib/third!


ऐसा लगता है कि मेरे पास है py.testऔर pytestदोनों ने परीक्षण चलाए और अलग-अलग जानवर हैं। अजीब लेकिन pytestएक असफल है क्योंकि यह बहिष्करण को लोड नहीं करता है [pytest]
sorin

1
pytestलोगिलाब से है। आप चाहते हैं py.test
ecatmur

3
यह भी करने की कोशिश करेंnosecuredirs=lib/third/*
बुद्धि

क्या कोड के साथ स्क्रिप्ट में कुछ फ़ोल्डर्स को अनदेखा करने का कोई तरीका है?
bicepjai

2
यहाँ समाप्त हो गया क्योंकि मैं उत्सुक था कि स्थानीय विकास में मेरी pytest वेब ऐप का नरक इतना धीमा क्यों है ... कारण कुछ नेस्टेड y / dd / mm संरचना के साथ अपलोड की गई संसाधन निर्देशिका थी .... जिससे यह वास्तविक रूप से बेकार हो जाता है! शुक्र [pytest] norecursedirs = resourcesहै pytest.iniकि एक चाल में!
il

जवाबों:


86

py.test --ignore=somedir मेरे लिए काम किया


5
और --ignoreकई निर्देशिकाओं को अनदेखा करने के लिए कई बार निर्दिष्ट किया जा सकता है
फीनिक्स

निर्देशिका के बजाय कुछ परीक्षणों को कैसे छोड़ें
रजत जैन

आप -kनीचे दिए गए शो के विकल्प के रूप में विकल्प का उपयोग कर सकते हैं । Docs.pytest.org/en/latest/… पर "कीवर्ड अभिव्यक्तियों द्वारा परीक्षण चलाएं" देखें । मार्क्स यहां भी मददगार हो सकते हैं। अपने परीक्षणों को "धीमे", आदि के रूप में चिह्नित करें और फिर उपयोग करें-k "not slow"
shadfc

3
यूनिक्स शैल-शैली वाइल्डकार्ड के आधार पर परीक्षण फ़ाइल पथों की उपेक्षा करना भी संभव है--ignore-glob । ईजी --ignore-glob=**/sandbox/*किसी भी sandboxफ़ोल्डर में सभी फाइलों को नजरअंदाज कर देगा ।
जनवरी एम।

28

यदि आपके पास विभिन्न माता-पिता के साथ कई निर्देशिकाएं हैं, तो आप विभिन्न --ignoreमापदंडों को निर्दिष्ट कर सकते हैं :

py.test --ignore=somedir --ignore=otherdir --ignore=etcdir

  • नया विकल्प: --ignore संग्रह से निर्दिष्ट पथ को रोकेगा।
    कई बार निर्दिष्ट किया जा सकता है।

24

एक pytest अनुभाग संभव config फ़ाइलों में से एक में पाया जाता है (: मैं रहस्य सुलझ pytest.ini, tox.iniऔर setup.cfg), pytest किसी भी दूसरों के लिए नहीं लग रही होगी तो सुनिश्चित करें कि आप एक एकल फाइल में py.test विकल्पों को परिभाषित किया।

मैं उपयोग करने का सुझाव दूंगा setup.cfg


9
क्यों setup.cfg? वर्तमान प्रलेखन
15

मुझे लगता है कि यह उल्लेख करना महत्वपूर्ण है कि यदि आप एक .iniफ़ाइल का उपयोग करना चाहते हैं, तो आपको इसे निर्दिष्ट करना होगा pytest -c pytest.ini। किसी कारणवश setup.cfgसामग्री को स्वचालित रूप से उठाया गया था।
उपराष्ट्रपति


11

norecursedirsकार्य करना चाहिए। जांचें कि आपके पास pytest.ini या अन्य setup.cfg फाइलें हैं या नहीं। कैसे आह्वान कर रहे हैं py.test?


1
मैं अंदर setup.cfgउचित [pytest]और norecorsedirs के साथ है, लेकिन यह नजरअंदाज किया जा रहा है, और इसके बजाय यह सभी फ़ाइलों के लिए दिखेगा।
सोरिन

10

मेरे मामले में, मुद्दा गायब वाइल्डकार्ड था। निम्नलिखित मेरे लिए काम करता है:

[tool:pytest]
norecursedirs = subpath/*

जबकि अभी norecursedirs = subpathनहीं।


मुझे भी। हालांकि बहुत अजीब व्यवहार।
अज़मुक सिप

3

यदि आप setup.cfg का उपयोग कर रहे हैं, तो आपको http://doc.pytest.org/en/latest/example/pythoncollection.html के[tool:pytest] अनुसार उपयोग करना होगा

pytest.ini की # सामग्री को
भी tox.ini या setup.cfg फ़ाइल में परिभाषित किया जा सकता है, हालाँकि
setup.cfg फ़ाइलों में # नाम "उपकरण: पाइस्टेस्ट" होना चाहिए


0

उपयोग करने के लिए pytest.ini(जो अनुशंसित है, जब तक कि आप toxकिस मामले में उपयोग कर रहे हैं tox.ini), के pytestसाथ कॉल करें pytest -c pytest.ini

मेरे नमूने को रोकने not_me_1.pyऔर not_me_2.pyपरीक्षण करने या चूना लगाने के लिए, मेरा pytest.iniअनुसरण इस प्रकार है:

[pytest]
addopts = --ignore-glob=not_me_*

[pycodestyle]
ignore = not_me_* ALL

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.