2011-06-18 10 views
88

मैं अपने पायथन कोड के लिए यूनिट परीक्षण लिखना शुरू करना चाहता हूं, और py.test फ्रेमवर्क पाइथन के बंडल unittest की तुलना में बेहतर शर्त की तरह लगता है। तो मैंने अपनी परियोजना में एक "परीक्षण" निर्देशिका जोड़ा, और इसमें test_sample.py जोड़ा। अब मैं अपने "परीक्षण" निर्देशिका में सभी परीक्षण चलाने के लिए PyCharm को कॉन्फ़िगर करना चाहता हूं।py.test परीक्षण चलाने के लिए मैं PyCharm को कैसे कॉन्फ़िगर कर सकता हूं?

PyCharm कथित रूप से supports py.test अपने परीक्षण धावक में। आप अपने परीक्षण चलाने के लिए create a run/debug configuration पर सक्षम होना चाहिए, और PyCharm कथित तौर पर "create configuration" dialog box specifically for py.test है। लेकिन यह विषय पर उनके दस्तावेज की पूरी सीमा है, और मुझे यह कथित संवाद बॉक्स कहीं भी नहीं मिल रहा है।

मैं परियोजना उपकरण विंडो में निर्देशिका राइट क्लिक करें, तो मैं supposed हूँ एक "बनाएँ < नाम >" मेनू आइटम देखने के लिए, लेकिन केवल मेनू आइटम "बनाएँ" के साथ शुरू होता है "रन विन्यास बनाएँ"। ठीक है, हो सकता है कि दस्तावेज़ केवल गलत है, और "रन कॉन्फ़िगरेशन बनाएं" ध्वनि वादा करता है। दुर्भाग्यवश, इसके उपमेनू में केवल दो आइटम "सी: \ mypath ..." और "सी: \ mypath में कार्य करता है ...", जिनमें से कोई भी लागू नहीं होता है - मैं न तो अचूक और न ही सबसे अच्छा उपयोग कर रहा हूं। Py.test के लिए कोई मेनू आइटम नहीं है।

यदि मैं अपना test_sample.py खोलता हूं और संपादक विंडो में राइट-क्लिक करता हूं, तो मुझे वादा किया गया है "मेनू < नाम >" मेनू आइटम बनाएं: test_sa में 'बनाएं' Unittests है ...'... " test_sa में 'रन' unittests के बाद ... '"और" डीबग' test_sa में unittests ... '"। तो फिर, यह सबसे अजीब ढांचे के लिए विशिष्ट है; py.test के लिए कुछ भी नहीं।

यदि मैं मेनू आइटमों को "unittest" कहता हूं, तो मुझे "नाम", "टाइप", "फ़ोल्डर" और "पैटर्न" और "स्क्रिप्ट" के साथ "टेस्ट" समूह बॉक्स के साथ एक संवाद बॉक्स मिलता है। "और" कक्षा "और" फ़ंक्शन "इत्यादि। यह configuration for Python Unit Test जोड़ने के लिए संवाद के रूप में दस्तावेज किए गए दस्तावेज़ की तरह लगता है, और" नाम "और" परीक्षण करने के लिए परीक्षण "और" कीवर्ड "विकल्प जैसे दिखने वाले नहीं हैं configuration for py.test संवाद में। मैं जो टेस्ट फ्रेमवर्क जोड़ रहा हूं उसे स्विच करने के लिए संवाद के अंदर कुछ भी नहीं है।

मैं विंडोज़ पर पाइथन 3.1.3 और पायस्टेस्ट 2.0.3 के साथ विंडोज पर पाइचर्म 1.5.2 का उपयोग कर रहा हूं। मैं कमांड लाइन से अपने परीक्षणों पर सफलतापूर्वक py.test चला सकता हूं, इसलिए यह कुछ आसान नहीं है जैसे pytest ठीक से इंस्टॉल नहीं किया जा रहा है।

मैं अपने py.test परीक्षण चलाने के लिए PyCharm को कैसे कॉन्फ़िगर कर सकता हूं?

उत्तर

139

कृपया फ़ाइल पर जाएं | सेटिंग्स | टूल्स | पायथन एकीकृत उपकरण और डिफ़ॉल्ट परीक्षण धावक को py.test में बदलें। फिर आपको सबसे अजीब के बजाय परीक्षण बनाने के लिए py.test विकल्प मिल जाएगा।

+0

हां! पता नहीं कैसे मैं इसे याद किया। यह केवल आधा काम करता है, हालांकि: अगर मैं प्रोजेक्ट टूल विंडो में फ़ोल्डर पर राइट-क्लिक करता हूं, तो यह मुझे doctests बनाने का विकल्प देता है, py.tests नहीं। (मैं एक बग रिपोर्ट लिखूंगा।) लेकिन अगर मैं संपादक में राइट-क्लिक करता हूं और फिर निर्देशिका नाम पर "स्क्रिप्ट:" बदलता हूं तो यह काम करता है। –

+0

धन्यवाद! मैं कभी याद नहीं कर सकता कि यह सेटिंग कहां है! – Inti

+3

अपनी स्रोत निर्देशिका को "स्रोत रूट" के रूप में चिह्नित भी याद रखें: http://www.jetbrains.com/pycharm/webhelp/content-root.html – Inti

13

मुझे लगता है कि आपको टूलबार पर रन/डीबग कॉन्फ़िगरेशन आइटम का उपयोग करने की आवश्यकता है। इसे क्लिक करें और 'कॉन्फ़िगरेशन संपादित करें' (या वैकल्पिक रूप से मेनू आइटम रन-> कॉन्फ़िगरेशन संपादित करें) का उपयोग करें। बाएं फलक में 'डिफ़ॉल्ट' अनुभाग में एक 'py.test' आइटम है जो मुझे लगता है कि आप क्या चाहते हैं।

मैंने यह भी पाया कि मैन्युअल इस के लिए यूआई तक मेल नहीं खाता है। उम्मीद है कि मैंने समस्या को सही ढंग से समझा है और इससे मदद मिलती है।

+3

"डिफ़ॉल्ट> py.test" पृष्ठ वास्तव में मुझे कॉन्फ़िगरेशन बनाने का कोई तरीका नहीं देता था। लेकिन अगर मैं कॉन्फ़िगरेशन कॉन्फ़िगरेशन डायलॉग पर गया, तो "+" टूलबार बटन पर क्लिक किया गया, "py.test" चुना गया, और मेरे परीक्षण वाले निर्देशिका में "वर्किंग डायरेक्टरी" सेट करें, जिसने एक कॉन्फ़िगरेशन बनाया जो मेरे परीक्षण चलाएगा। तो प्रोग्राम के एक सहायक भाग के लिए मुझे इंगित करने के लिए +1। मैं @yole को स्वीकार्य उत्तर दूंगा, हालांकि, मुझे लगता है कि py.test को डिफ़ॉल्ट बदलना एक बेहतर समाधान है - इसे मुझे केवल वर्तमान फ़ाइल, और ऐसी चीजों को चलाने देना चाहिए। –

+0

@JoeWhite कृपया इसे उत्तर के रूप में जोड़ें क्योंकि यह उपयोगी था –

5

यह सुनिश्चित करने के लिए खराब दस्तावेज है। एक बार जब आप डिफ़ॉल्ट से एक नई कॉन्फ़िगरेशन जोड़ लेते हैं, तो आप "/ अनुप्रयोग/PyCharm CE.app/Contents/helpers/pycharm/pytestrunner.py" स्क्रिप्ट चलाने के दायरे में होंगे। यह दस्तावेज नहीं है और कमांड लाइन तर्कों के अपने विचार हैं।

आप कर सकते हैं:

  1. कोशिश के आसपास खेलते हैं, स्क्रिप्ट रिवर्स, और यदि आप किसी भी तरह py प्राप्त कर सकते हैं देखने के लिए।तर्क स्वीकार करने के लिए परीक्षण। यह काम हो सकता है; यह मेरे लिए पहले छमाही घंटे में नहीं था।
  2. बस एक कंसोल से "py.test * .py" चलाएं।

विचित्र रूप से, आपको कोई चर्चा नहीं मिल जाएगी क्योंकि JetBrains अपने स्वयं के पृष्ठों के साथ Google एल्गोरिदम पर बमबारी करने का अच्छा काम करता है।

0

एक विशेष कोंडा पायथन सेटअप के साथ जिसमें पीईटीएस्ट प्लस के लिए पाइप इंस्टॉलेशन के लिए पीपीटीएस्ट प्लस का उपयोग शामिल किया गया है (स्पेस ऐडिन (विकल्प - एसपीईसी) (अच्छा टेस्ट सारांश भाषा की तरह रुपेक के लिए), मुझे करना था; https://github.com/pchomik/pytest-spec

2.Create नए परीक्षण विन्यास, py.test का उपयोग कर:

1.Edit डिफ़ॉल्ट py.test विकल्प = --spec, प्लगइन का उपयोग जिसका अर्थ है शामिल करने के लिए। ~/Anaconda/envs/दुभाषियों की अपनी पसंद का उपयोग करने के लिए अपने पायथन दुभाषिया को बदलें, उदाहरण के लिए मेरे नाम के लिए py27।

3. 'unittests' परीक्षण कॉन्फ़िगरेशन हटाएं।

4. अब डिफ़ॉल्ट परीक्षण कॉन्फ़िगरेशन मेरे प्यारे रुपेक शैली आउटपुट के साथ py.test है। मुझे यह पसंद है! आप सभी को धन्यवाद!

पेज। रन/डिबग कॉन्फ़िगरेशन पर JetBrains 'डॉक यहाँ है: जब मैं एक ही सवाल मारा और समाधान pycharm संस्करण पाया https://www.jetbrains.com/help/pycharm/2016.1/run-debug-configuration-py-test.html?search=py.test

1

इस सूत्र पाते हैं: 2017/01/02 जाना "वरीयताएँ" -> "उपकरण" -> " py.testDefault test runner के रूप में चुनें - अजगर एकीकृत उपकरण "और दाईं ओर पैनल py.test रूप से डिफ़ॉल्ट परीक्षण धावक मेरी समस्या

+0

में सामान्य सेटिंग यह काम करेंगे में ही उपलब्ध है, लेकिन फिर आप परियोजना विंडो में परीक्षण स्क्रिप्ट फ़ाइल नाम राइट क्लिक करने के लिए है। यदि आप इसके बजाय उसी टेस्ट स्क्रिप्ट के फ़ाइल संपादक क्षेत्र पर राइट क्लिक करते हैं, तो यह दुर्भाग्यवश पुराने डिफॉल्ट टूल (यूनिट्स) को दिखाता है। यह कष्टप्रद है क्योंकि मैं उस व्यक्तिगत फ़ंक्शन को निर्दिष्ट नहीं कर सकता जिसे मैं परीक्षण करना चाहता हूं। –

4

PyCharm 2017,3

  1. Preference -> Tools -> Python integrated Tools सेट का समाधान।
  2. आप Django Preference -> Languages&Frameworks -> Django का उपयोग करते हैं - पर Do not use Django Test runner
  3. साफ़ Run/Debug configuration से सभी पिछले runned परीक्षण टिक सेट करें, अन्यथा परीक्षण है कि विन्यास के साथ runned किया जाएगा।
  4. कुछ डिफ़ॉल्ट अतिरिक्त तर्क सेट करने के लिए py.test डिफ़ॉल्ट कॉन्फ़िगरेशन अद्यतन करें। Run/Debug Configuration -> Defaults -> Python tests -> py.test -> Additional Arguments
+2

PyCharm 2017/03/02 में, के बाद भी मैं डिफ़ॉल्ट, जब मैं परियोजनाओं पैनल में परियोजना पर राइट क्लिक करें और चुनें 'नई => अजगर File',' तरह के रूप में py.test सेट: 'लटकती केवल प्रदान करता है: अजगर फ़ाइल, यूनिट टेस्ट, पायथन स्टब, पायटेस्ट नहीं। मैंने उपरोक्त धागे में उल्लिखित सभी स्थानों में देखा है। मैं क्या खो रहा हूँ? –

+0

पायथन फ़ाइल, यूनिट टेस्ट, पायथन स्टब - वे कुछ पूर्वनिर्धारित डेटा के साथ पाइथन फाइलें हैं, आप अपना खुद का जोड़ सकते हैं, इस विषय को पढ़ें https://www.jetbrains.com/help/pycharm/creating-and-editing-file -templates.html। लेकिन यह py.test परीक्षण चलाने पर प्रभाव नहीं डालता है, आप केवल एक पायथन फ़ाइल बना सकते हैं और यह काम करेगा। इस विषय में हम चर्चा कर रहे हैं कि py.test चलाने के लिए https://www.jetbrains.com/help/pycharm/running-tests.html इस सुविधा को कॉन्फ़िगर कैसे करें। –