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


162

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

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

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

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

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

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

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

जवाबों:


228

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


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

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

1
क्या प्रति-मॉड्यूल के बजाय पूरे प्रोजेक्ट (या सभी प्रोजेक्ट) के लिए इसे सेट करने का कोई तरीका है?
ऑरेंजडॉग

1
ऐसा प्रतीत होता है कि File | Settings | Tools | Python Integrated Toolsकेवल PyCharm 5 में डिफ़ॉल्ट सेटिंग्स के बजाय प्रोजेक्ट सेटिंग्स में उपलब्ध है
किलथ्रश

2
एक बार यह कॉन्फ़िगर हो जाने के बाद, आप वास्तव में परीक्षण कैसे चलाते हैं?
क्रिस एंडरसन

51

PyCharm 2017.3

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

2
PyCharm 2017.3.2 में, मैं डिफ़ॉल्ट के रूप में py.test सेट करने के बाद भी, जब मैं प्रोजेक्ट पैनल में प्रोजेक्ट पर राइट-क्लिक करता हूं और चयन करता हूं New => Python File, तो Kind:ड्रॉपडाउन केवल प्रदान करता है: पायथन फाइल, यूनिट टेस्ट, पायथन स्टब, विडेस्ट नहीं। मैंने ऊपर दिए गए थ्रेड्स में वर्णित सभी स्थानों पर ध्यान दिया है। मैं क्या खो रहा हूँ?
टॉम बेकर

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

नवीनतम PyCharm में, "डिफॉल्ट्स" को "टेम्प्लेट्स" कहा जाता है
AgDude

19

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

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


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

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

कॉन्फ़िगरेशन विंडो को संपादित करने पर, अपने सबसे प्यारे विन्यास को चुनने के बाद, मुझे अपने टेस्ट फोल्डर के मूल में इसे चुनना Targetहोगा Script athऔर इसे इंगित करना होगा
RAbraham

यह बहुत बेहतर तरीका है क्योंकि यह अन्य सुविधा के साथ-साथ कमांड-लाइन-दलील आदि को भी खोलता है
चिराग नायक

13

यहाँ बताया गया है कि कैसे मैंने इसे पाइस्टेस्ट 3.7.2(पाइप के माध्यम से स्थापित) और pycharms के साथ काम किया 2017.3:

  1. के लिए जाओ edit configurations

  1. एक नया रन कॉन्फिगर जोड़ें और चुनें py.test

  1. रन कॉन्फिगर विवरण में, आपको target= pythonऔर अनाम क्षेत्र को नीचे सेट करना होगा tests। ऐसा लगता है कि यह आपके परीक्षण फ़ोल्डर का नाम है। बहुत कठिन नहीं है। मैं -sतर्क की भी सिफारिश करता हूं ताकि यदि आप अपने परीक्षणों को डिबग करते हैं, तो कंसोल ठीक से व्यवहार करेगा। तर्क के बिना pytest आउटपुट को कैप्चर करता है और डीबग कंसोल को छोटी गाड़ी बनाता है।

  1. मेरा परीक्षण फ़ोल्डर ऐसा दिखता है। यह मेरे प्रोजेक्ट के रूट से ठीक नीचे ( my_project/tests) है।

  1. मेरी foobar_test.pyफ़ाइल: (कोई आयात आवश्यक नहीं):
def test_foobar ():
    प्रिंट करें ("हेलो पाइस्टेस्ट")
    सच बोलना
  1. इसे सामान्य रन कमांड के साथ चलाएं


क्या वर्तमान फ़ाइल से केवल परीक्षण चलाने की कोई संभावना है? मुझे केवल यह पता चला कि मुझे हर बार जब मैं दूसरी फाइल खोलता हूं तो फाइल सेटिंग्स में फाइलनेम को बदलना
पड़ता है

@ मैं नहीं जानता कि मेरे सिर के ऊपर। इस पर एक नज़र डालें: jetbrains.com/help/pycharm/performing-tests.html और यह: jetbrains.com/pycharm/guide/tips/run-single-test
बेंजामिन क्राउज़िंग

5

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

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

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

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


3

जब मैं एक ही प्रश्न को मारता हूं तो यह थ्रेड ढूंढता हूं और समाधान pycharm संस्करण मिला: 2017.1.2 "प्राथमिकताएं" -> "उपकरण" -> "पायथन इंटीग्रेटेड टूल" पर जाएं और दाईं ओर के पैनल से डिफ़ॉल्ट टेस्ट रनर को py.test के रूप में सेट करें। मेरी समस्या का समाधान करो


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

3

Pycharm 2019.2 में, आप बस सभी परीक्षण चलाने के लिए ऐसा कर सकते हैं:

  1. चलाएँ> कॉन्फ़िगरेशन संपादित करें> pytest जोड़ें
  2. निम्न स्क्रीनशॉट में दिखाए अनुसार विकल्प सेट करें कॉन्फ़िगरेशन का स्क्रीनशॉट
  3. डीबग पर क्लिक करें (या हॉटस्टिक्स शिफ्ट + ऑल्ट + एफ 9 का उपयोग करके पाइस्टेस्ट चलाएं)

Pycest को pycharm में उच्च एकीकरण के लिए, https://www.jetbrains.com/help/pycharm/pytest.html देखें


2

मैं 2018.2 का उपयोग कर रहा हूं

मैं रन करता हूं -> कॉन्फ़िगरेशन को संपादित करता हूं ... फिर मोडल संवाद के ऊपरी बाएं भाग में + क्लिक करें। "अजगर परीक्षण" चुनें -> py.test तो मैं इसे "py.test के साथ सभी परीक्षण" जैसा नाम देता हूं

मैं लक्ष्य का चयन करता हूं: मॉड्यूल नाम और उस मॉड्यूल में डाल दिया जहां मेरे परीक्षण हैं (जो मेरे लिए 'परीक्षण' हैं) या मॉड्यूल जहां मेरे सभी कोड हैं यदि मेरे परीक्षण मेरे कोड के साथ मिश्रित हैं। यह मुझे ट्रिपिंग कर रहा था।

मैंने पायथन इंटरप्रेटर सेट किया।

मैंने कार्य निर्देशिका को प्रोजेक्ट निर्देशिका में सेट किया है।


0

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

1. विकल्प =-spec शामिल करने के लिए डिफ़ॉल्ट py.test का उपयोग करें, जिसका अर्थ है कि प्लगइन का उपयोग करें: https://github.com/pchomik/pytest-spec

2. नया परीक्षण विन्यास बनाएँ, py.test का उपयोग कर। ~ / एनाकोंडा / envs / दुभाषियों की अपनी पसंद, जैसे मेरी प्रार्थना के लिए py27 का उपयोग करने के लिए अपने अजगर दुभाषिया बदलें।

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

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

ps Jetbrains का रन / डिबग कॉन्‍फ़‍िगर पर यहां है: https://www.jetbrains.com/help/pycharm/2016.1/run-debug-configuration-py-test.html?search=py.test


0

2018.3 के साथ यह स्वतः पता चलता है कि मैं pytest का उपयोग कर रहा हूं, जो अच्छा है, लेकिन यह अभी भी परियोजना के शीर्ष स्तर से चलने की अनुमति नहीं देता है। मुझे व्यक्तिगत रूप से pytestप्रत्येक testsनिर्देशिका के लिए दौड़ना था ।

हालांकि, मैंने पाया कि मैं कॉन्फ़िगरेशन में से एक चुन सकता हूं और इसे प्रोजेक्ट के रूट पर चलाने के लिए मैन्युअल रूप से संपादित कर सकता हूं और यह काम किया है। मुझे इसे मैन्युअल रूप से कॉन्फ़िगरेशन ड्रॉप-डाउन में चुनना होगा - प्रोजेक्ट फलक में रूट फ़ोल्डर पर राइट क्लिक नहीं कर सकता। लेकिन कम से कम यह मुझे एक ही बार में सभी परीक्षण चलाने की अनुमति देता है।


0

आप परियोजना के लिए Pytest सक्षम करें

  1. सेटिंग्स / प्राथमिकताएं खोलें | उपकरण | अपने परीक्षण ढांचे को चुनने में वर्णित पायथन इंटीग्रेटेड टूल सेटिंग्स डायलॉग।
  2. में डिफ़ॉल्ट परीक्षण धावक क्षेत्र का चयन pytest
  3. सेटिंग्स को सहेजने के लिए ओके पर क्लिक करें।

यहां छवि विवरण दर्ज करें

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