[python] doctest를 사용하여 파이썬 모듈의 호환성을 테스트하는 방법은?

개요

doctest는 파이썬의 내장 테스트 도구로, 쉽게 테스트 코드를 작성할 수 있게 도와줍니다. 특히 파이썬 모듈의 호환성을 테스트하기 위해 사용할 수 있습니다. doctest는 모듈의 함수, 클래스, 메서드의 예제 코드를 포함한 독스트링(docstring)에 작성된 테스트를 실행합니다. 이러한 테스트는 모듈과 관련된 예상 결과를 검증하고 문서화하는데 도움이 됩니다.

doctest 작성 방법

doctest를 사용하여 모듈의 호환성을 테스트하기 위해서는 다음과 같은 단계를 따릅니다.

  1. 테스트할 모듈에 함수나 클래스의 독스트링에 예제 코드를 작성합니다.
  2. 예상 결과를 주석으로 작성합니다.
  3. doctest 모듈을 임포트하고 doctest.testmod() 함수를 호출하여 테스트를 실행합니다.

다음은 math_utils.py 모듈의 add() 함수를 예제로 사용한 doctest입니다.

def add(a, b):
    """
    두 수를 더하는 함수입니다.

    >>> add(2, 3)
    5
    >>> add(5, -2)
    3
    >>> add(2.5, 4.7)
    7.2
    """

    return a + b

위의 예제 코드는 add() 함수를 호출한 결과와 예상 결과를 검증하는 테스트를 포함하고 있습니다.

doctest 실행하기

doctest를 실행하려면 스크립트나 콘솔에서 다음과 같이 python -m doctest 파일명.py 명령어를 입력합니다. 파일명 대신에 모듈의 경로와 파일명을 입력해야 합니다. 위 예제와 같이 math_utils.py 모듈이 있다면 다음 명령어를 입력하여 doctest를 실행할 수 있습니다.

python -m doctest math_utils.py

doctest는 독스트링에 작성된 테스트를 실행하고, 결과를 출력해줍니다. 테스트가 성공했을 경우에는 어떤 메시지도 출력되지 않습니다. 그러나 테스트가 실패한 경우에는 테스트가 실패한 위치와 예상 결과, 실제 결과를 출력하여 어떤 부분에서 문제가 발생했는지 알려줍니다.

결론

doctest는 파이썬 모듈의 호환성을 테스트하는 간편하고 효과적인 방법입니다. 모듈에 작성된 독스트링의 예제 코드를 테스트로 활용하여 모듈의 동작을 검증할 수 있습니다. doctest를 사용하면 모듈의 기능을 문서화하고 테스트하는 부분을 통합할 수 있어 효율적인 프로그래밍을 할 수 있습니다.

참고 자료