https://docs.python.org/3/tutorial/stdlib.html#quality-control

  • doctest: 문서화 겸용. 예제 호출과 기대 결과를 docstring에 적어두면 doctest.testmod()가 스캔·검증. 간단한 함수/예제 검증이나 사용법 보장에 좋고, 테스트가 코드 옆에 있어 유지비가 낮음.
  • unittest: 별도 테스트 파일에서 체계적 검증. 여러 케이스, setup/teardown, 예외 검증, 스위트 구성 등 포괄적인 테스트에 적합. CLI에서 python -m unittest로 전체 실행 가능.
  • 선택 기준: 빠르게 예제+동작 일치 확인 → doctest; 복잡한 로직/여러 입력/fixtures/분리된 테스트 관리 → unittest.
  • 주의: doctest는 공백/출력 포맷까지 비교하므로 출력이 자주 바뀌면 유지가 번거로울 수 있음. unittest는 어서션으로 유연한 비교가 가능.
 
"""
예제용 doctest 스크립트입니다.
터미널에서 `python -m doctest -v sample_doctest.py`로 실행하세요.
"""
 
def average(values):
  """계산 예제와 예외 확인.
 
>>> average([20, 30, 70])
  40.0
>>> average([1, 5, 7])
  4.333333333333333
>>> average([])  # 빈 리스트는 ZeroDivisionError 발생
  Traceback (most recent call last):
	  ...
  ZeroDivisionError: division by zero
  """
  return sum(values) / len(values)
 
def greet(name):
  """문자열 포맷 예제.
 
>>> greet("Alice")
  'Hello, Alice!'
>>> greet("Bob")
  'Hello, Bob!'
  """
  return f"Hello, {name}!"
 
if __name__ == "__main__":
  import doctest
  doctest.testmod(verbose=True)
 
실행:
 
python -m doctest -v sample_doctest.py
# 또는
python sample_doctest.py  # __main__ 블록에서 doctest 실행

← python 3.14으로