पायथन एक मानक doctest मॉड्यूलसह येतो जे डॉकस्ट्रिंगमधील सामग्रीची चाचणी घेते, डॉकस्ट्रिंगमध्ये इनपुट आणि आउटपुट उदाहरणे लिहिणे सोपे करते आणि दस्तऐवजीकरण समजण्यास सोपे करते.
खालील माहिती येथे दिली आहे.
- डॉक्टेस्टसह चाचणीचे एक साधे उदाहरण
- जर काही त्रुटी नसेल तर
- त्रुटी असल्यास
- पर्याय आणि युक्तिवादांद्वारे आउटपुट परिणाम नियंत्रित करा
-v
पर्यायverbose
युक्तिवाद (उदा. कार्य, कार्यक्रम, कार्यक्रम)
- कमांड लाइनवरून डॉक्टेस्ट मॉड्यूल चालवा
- बाह्य मजकूर फाइलमध्ये चाचण्या लिहिणे
- मजकूर फाइल कशी लिहायची
- py फाईलवरून कॉल केला
- थेट मजकूर फाइल कार्यान्वित करा
डॉक्टेस्टसह चाचणीचे एक साधे उदाहरण
डॉकस्ट्रिंग ही खालीलपैकी एकामध्ये बंद केलेली स्ट्रिंग आहे: (1) चाचणी करायच्या फंक्शनचे नाव, (2) तपासल्या जाणार्या फंक्शनचे नाव आणि (3) पायथन इंटरएक्टिव्ह मोडमध्ये अपेक्षित आउटपुट मूल्य.
"""
''
जर काही त्रुटी नसेल तर
फंक्शन आणि डॉकस्ट्रिंग सामग्रीमध्ये कोड योग्य असल्याची खात्री करा.
def add(a, b):
'''
>>> add(1, 2)
3
>>> add(5, 10)
15
'''
return a + b
if __name__ == '__main__':
import doctest
doctest.testmod()
ही फाईल चालवा.
$ python3 doctest_example.py
काही त्रुटी नसल्यास, काहीही आउटपुट होणार नाही.
if __name__ == '__main__'
याचा अर्थ “कमांड लाइनवरून संबंधित स्क्रिप्ट फाइल कार्यान्वित केल्यावरच त्यानंतरची प्रक्रिया चालवा.
त्रुटी असल्यास
तुम्ही खालील चुकीचा कोड तयार करून कार्यान्वित केल्यास, त्रुटी आउटपुट होईल.
def add(a, b):
'''
>>> add(1, 2)
3
>>> add(5, 10)
10
'''
return a * b
if __name__ == '__main__':
import doctest
doctest.testmod()
$ python3 doctest_example_error.py
**********************************************************************
File "doctest_example_error.py", line 3, in __main__.add
Failed example:
add(1, 2)
Expected:
3
Got:
2
**********************************************************************
File "doctest_example_error.py", line 5, in __main__.add
Failed example:
add(5, 10)
Expected:
10
Got:
50
**********************************************************************
1 items had failures:
2 of 2 in __main__.add
***Test Failed*** 2 failures.
ते खालीलप्रमाणे दाखवले आहे.
अपेक्षित आउटपुट मूल्ये doctest मध्ये लिहिलेली आहेत. | Expected |
वास्तविक आउटपुट मूल्य | Got |
पर्याय आणि युक्तिवादांद्वारे आउटपुट परिणाम नियंत्रित करा
-vपर्याय
त्रुटी नसतानाही तुम्हाला आउटपुट परिणाम प्रदर्शित करायचे असल्यास, कमांड लाइनवरील -v पर्यायासह कमांड चालवा.
$ python3 doctest_example.py -v
Trying:
add(1, 2)
Expecting:
3
ok
Trying:
add(5, 10)
Expecting:
15
ok
1 items had no tests:
__main__
1 items passed all tests:
2 tests in __main__.add
2 tests in 2 items.
2 passed and 0 failed.
Test passed.
verboseयुक्तिवाद (उदा. कार्य, कार्यक्रम, कार्यक्रम)
तुम्हाला नेहमी आउटपुट परिणाम प्रदर्शित करायचे असल्यास, py फाइलमध्ये verbose=True in doctest.testmod() वितर्क निर्दिष्ट करा.
if __name__ == '__main__':
import doctest
doctest.testmod(verbose=True)
रनटाइमच्या वेळी -v पर्यायाशिवाय आउटपुट परिणाम नेहमी प्रदर्शित केले जातील.
$ python3 doctest_example_verbose.py
Trying:
add(1, 2)
Expecting:
3
ok
Trying:
add(5, 10)
Expecting:
15
ok
1 items had no tests:
__main__
1 items passed all tests:
2 tests in __main__.add
2 tests in 2 items.
2 passed and 0 failed.
Test passed.
कमांड लाइनवरून डॉक्टेस्ट मॉड्यूल चालवा
if __name__ == '__main__'
तुम्हाला त्यात आणखी काही करायचे असल्यास, तुम्ही py फाइलमधील doctest.testmod() वर कॉल न करता थेट कमांड लाइनवरून doctest मॉड्यूल चालवू शकता.
उदाहरणार्थ, खालील प्रकरणांमध्ये
def add(a, b):
'''
>>> add(1, 2)
3
>>> add(5, 10)
15
'''
return a + b
if __name__ == '__main__':
import sys
result = add(int(sys.argv[1]), int(sys.argv[2]))
print(result)
हे कमांड लाइन वितर्क प्राप्त करू शकते आणि नेहमीप्रमाणे प्रक्रिया कार्यान्वित करू शकते.
$ python3 doctest_example_without_import.py 3 4
7
तुम्ही -m पर्यायासह स्क्रिप्ट म्हणून doctest चालवल्यास, चाचणी ज्या फंक्शनमध्ये doctest लिहिली आहे त्या विरुद्ध चालविली जाईल. तुम्हाला आउटपुट परिणाम प्रदर्शित करायचे असल्यास, -v पूर्वीप्रमाणे जोडा.
$ python3 -m doctest doctest_example_without_import.py
$ python3 -m doctest -v doctest_example_without_import.py
Trying:
add(1, 2)
Expecting:
3
ok
Trying:
add(5, 10)
Expecting:
15
ok
1 items had no tests:
doctest_example_without_import
1 items passed all tests:
2 tests in doctest_example_without_import.add
2 tests in 2 items.
2 passed and 0 failed.
Test passed.
बाह्य मजकूर फाइलमध्ये चाचण्या लिहिणे
तुम्ही चाचणी कोड डॉकस्ट्रिंग ऐवजी बाह्य मजकूर फाइलमध्ये देखील लिहू शकता.
मजकूर फाइल कशी लिहायची
डॉकस्ट्रिंगमध्ये वर्णन केल्याप्रमाणे पायथॉन इंटरएक्टिव्ह मोड फॉरमॅटमध्ये लिहा. वापरण्यासाठी फंक्शन्स आयात करणे आवश्यक आहे.
जर तुम्हाला .py फाइलची चाचणी घ्यायची आहे त्याच निर्देशिकेत मजकूर फाइल ठेवायची असल्यास, ती खालीलप्रमाणे आयात करा.
>>> from doctest_example import add
>>> add(1, 2)
3
>>> add(5, 10)
15
py फाईलवरून कॉल केला
चाचणीसाठी दुसऱ्या .py फाइलमध्ये doctest.testfile() वर कॉल करा.
मजकूर फाइलचा मार्ग निर्दिष्ट करा जिथे चाचणी कोड doctest.testfile() च्या युक्तिवाद म्हणून लिहिलेला आहे.
import doctest
doctest.testfile('doctest_text.txt')
ही py फाईल चालवा.
$ python3 doctest_example_testfile.py -v
Trying:
from doctest_example import add
Expecting nothing
ok
Trying:
add(1, 2)
Expecting:
3
ok
Trying:
add(5, 10)
Expecting:
15
ok
1 items passed all tests:
3 tests in doctest_text.txt
3 tests in 1 items.
3 passed and 0 failed.
Test passed.
थेट मजकूर फाइल कार्यान्वित करा
तुमच्याकडे py फाइल नसली तरीही, तुम्ही कमांड लाइनवरून थेट मजकूर फाइल वाचू शकता आणि चाचण्या चालवू शकता.
doctest स्क्रिप्ट म्हणून रन करण्यासाठी -m पर्यायासह Python कमांड चालवा. तुम्ही कमांड लाइन आर्ग्युमेंट म्हणून मजकूर फाइल पथ निर्दिष्ट करू शकता.
$ python3 -m doctest -v doctest_text.txt
Trying:
from doctest_example import add
Expecting nothing
ok
Trying:
add(1, 2)
Expecting:
3
ok
Trying:
add(5, 10)
Expecting:
15
ok
1 items passed all tests:
3 tests in doctest_text.txt
3 tests in 1 items.
3 passed and 0 failed.
Test passed.