పైథాన్‌లోని డాక్‌స్ట్రింగ్‌లలో టెస్ట్ కోడ్ రాయడానికి డాక్టెస్ట్ ఎలా రాయాలి మరియు ఉపయోగించాలి.

వ్యాపారం

పైథాన్ ఒక ప్రామాణిక డాక్టెస్ట్ మాడ్యూల్‌తో వస్తుంది, ఇది డాక్‌స్ట్రింగ్‌లోని కంటెంట్‌లను పరీక్షిస్తుంది, డాక్‌స్ట్రింగ్‌లో ఇన్‌పుట్ మరియు అవుట్‌పుట్ ఉదాహరణలను వ్రాయడాన్ని సులభతరం చేస్తుంది మరియు డాక్యుమెంటేషన్‌ను సులభంగా అర్థం చేసుకోవచ్చు.

కింది సమాచారం ఇక్కడ అందించబడింది.

  • డాక్టెస్ట్‌తో పరీక్షించడానికి ఒక సాధారణ ఉదాహరణ
    • లోపం లేనట్లయితే
    • లోపం ఉంటే
  • ఎంపికలు మరియు వాదనల ద్వారా అవుట్‌పుట్ ఫలితాలను నియంత్రించండి
    • -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.

ఇది క్రింది విధంగా చూపబడింది.

డాక్టెస్ట్‌లో వ్రాయబడిన అంచనా అవుట్‌పుట్ విలువలు.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 ఫైల్‌లో doctest.testmod()లో ఆర్గ్యుమెంట్ verbose=Trueని పేర్కొనండి.

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()ని కాల్ చేయకుండా నేరుగా కమాండ్ లైన్ నుండి డాక్టెస్ట్ మాడ్యూల్‌ను అమలు చేయవచ్చు.

ఉదాహరణకు, కింది సందర్భాలలో

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 ఎంపికతో డాక్టెస్ట్‌ని స్క్రిప్ట్‌గా అమలు చేస్తే, పరీక్ష డాక్టెస్ట్ వ్రాసిన ఫంక్షన్‌కు వ్యతిరేకంగా అమలు చేయబడుతుంది. మీరు అవుట్‌పుట్ ఫలితాలను ప్రదర్శించాలనుకుంటే, మునుపటిలాగా -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 ఫైల్ లేకపోయినా, మీరు కమాండ్ లైన్ నుండి నేరుగా టెక్స్ట్ ఫైల్‌ని చదవవచ్చు మరియు పరీక్షలను అమలు చేయవచ్చు.

డాక్టెస్ట్‌ను స్క్రిప్ట్‌గా అమలు చేయడానికి -m ఎంపికతో పైథాన్ ఆదేశాన్ని అమలు చేయండి. మీరు టెక్స్ట్ ఫైల్ పాత్‌ను కమాండ్ లైన్ ఆర్గ్యుమెంట్‌గా పేర్కొనవచ్చు.

$ 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.
Copied title and URL