[python] doctest에서 테스트 범위를 좁히는 방법은?

doctest는 Python에서 제공하는 테스트 도구로, 함수나 모듈의 문서 문자열에 작성된 테스트 예제를 자동으로 실행하여 예상한 결과와 실제 결과를 비교합니다. doctest를 사용하다보면 테스트 범위를 좁히는 경우가 생길 수 있습니다.

테스트 범위를 좁히는 방법 중 하나는 EXAMPLES_PROVIDED 데코레이터를 사용하는 것입니다. 이 데코레이터를 사용하면, 문서 문자열 내에 작성된 예제 중에서 특정 예제만 실행하도록 지정할 수 있습니다.

아래는 EXAMPLES_PROVIDED 데코레이터를 사용하여 doctest의 테스트 범위를 좁히는 예제입니다.

def my_function(x):
    """
    함수의 예제를 작성합니다.

    >>> my_function(2)  # 실행할 테스트 예제
    4  # 기대하는 결과

    >>> my_function(5)  # 실행하지 않을 테스트 예제
    10  # 기대하는 결과

    >>> my_function(10)  # 실행하지 않을 테스트 예제
    20  # 기대하는 결과

    :param x: 입력 값
    :return: 입력 값의 두 배
    """
    return x * 2

if __name__ == "__main__":
    import doctest
    doctest.testmod(extraglobs={'my_function': my_function}, verbose=True)

위 예제에서는 my_function 함수의 예제 중에서 my_function(2)만 실행하도록 지정했습니다. 이렇게 설정하면 해당 예제만 실행되고, 나머지 예제들은 실행되지 않습니다.

이 외에도 doctest에서 테스트 범위를 좁히는 다른 방법들이 있을 수 있습니다. 자세한 내용은 Python 공식 문서나 다른 참고 자료를 참고하시기 바랍니다.

참고 자료: