見出し画像

≮Python≯ doctest --- 対話的な実行例をテストする例題プログラム

Python で doctest を使用して、対話的な実行例をテストする例題プログラムです。

まず、このドキュメントを読んでください。
読んで、もし doctest の使い方がよく分からなくても、例題プログラムを見れば doctest の使い方が分かる様になるかもしれません。。。



プログラム例1


# doctest のテストプログラム  dt1.py
# コマンドラインショートカットは  python -m doctest example .py  または  python -m doctest -v example.py [詳細報告(verbose)モード]


def plus(a, b):
   '''
   対話的な実行例をテストする - 正常ケース

   >>> print(plus(1, 2))
   3
   >>> print(plus(1, -2))
   -1
   '''
   return a + b

if __name__ == "__main__":
   import doctest
   doctest.testmod()
#    doctest.testmod(verbose=True)  # 詳細報告(verbose)モード


実行結果 (無し)


プログラム例2


# doctest のテストプログラム  dt2.py
# コマンドラインショートカットは  python -m doctest example .py  または  python -m doctest -v example.py [詳細報告(verbose)モード]


def plus(a, b):
   '''
   対話的な実行例をテストする - 異常ケース (わざと -1 を -10 に変更)

   >>> print(plus(1, 2))
   3
   >>> print(plus(1, -2))
   -10
   '''
   return a + b

if __name__ == "__main__":
   import doctest
   doctest.testmod()
#    doctest.testmod(verbose=True)  # 詳細報告(verbose)モード


実行結果

**********************************************************************
File "dt2.py", line 12, in __main__.plus
Failed example:
   print(plus(1, -2))
Expected:
   -10
Got:
   -1
**********************************************************************
1 items had failures:
  1 of   2 in __main__.plus
***Test Failed*** 1 failures.


プログラム例3


# doctest のテストプログラム  dt3.py
# コマンドラインショートカットは  python -m doctest example .py  または  python -m doctest -v example.py [詳細報告(verbose)モード]


def plus(a, b):
   '''
   対話的な実行例をテストする - 正常ケース 詳細報告(verbose)モード

   >>> print(plus(1, 2))
   3
   >>> print(plus(1, -2))
   -1
   '''
   return a + b

if __name__ == "__main__":
   import doctest
#    doctest.testmod()
   doctest.testmod(verbose=True)  # 詳細報告(verbose)モード
  


実行結果


Trying:
   print(plus(1, 2))
Expecting:
   3
ok
Trying:
   print(plus(1, -2))
Expecting:
   -1
ok
1 items had no tests:
   __main__
1 items passed all tests:
  2 tests in __main__.plus
2 tests in 2 items.
2 passed and 0 failed.
Test passed.



#Chromebook 上の #Linux#Python #Python3 #プログラミング を勉強中 !
#doctest
#testmod
#テスト