[python] pytest-doctestplus를 사용한 문서화된 테스트

pytest(doctestplus)는 Python 코드와 문서화된 예제를 함께 유지하고 테스트하는 것을 지원하는 pytest 플러그인입니다. 이 플러그인을 사용하면 코드 예제를 문서화된 테스트로 바로 전환할 수 있으며, 주석이 포함된 예제 코드를 테스트로 실행하여 코드와 예제의 일관성을 보장할 수 있습니다.

pytest-doctestplus의 장점

  1. 코드와 문서화의 일관성 유지: pytest-doctestplus를 사용하면 문서화된 코드 예제를 직접 테스트로 실행하여 예제와 코드 간의 일관성을 유지할 수 있습니다. 이를 통해 문서와 코드 간의 불일치를 최소화할 수 있습니다.

  2. pytest의 확장: 기존의 pytest의 기능을 확장하는 것이 목적이기 때문에 pytest의 다양한 기능과 호환성을 유지하면서 문서화된 테스트를 수행할 수 있습니다.

  3. 가독성: 문서화된 예제 코드를 테스트로 유지하므로 가독성이 좋고 사용하기 쉽습니다.

pytest-doctestplus의 예제

# content of test_sample.py
def func(x):
    """This function squares the input value.

    Examples
    --------
    >>> func(2)
    4
    >>> func(3)
    9
    """
    return x ** 2

위의 test_sample.py 예제는 func 함수에 대한 문서화된 테스트를 보여줍니다. 아래의 예제는 터미널에서 pytest를 실행한 결과를 보여줍니다.

$ pytest --doctestplus
============================= test session starts ==============================
...
collected 2 items

test_sample.py ..                                                         [100%]

========================== 2 passed in 0.12 seconds ===========================

결론

pytest-doctestplus를 사용하면 코드와 문서화된 예제를 함께 유지하고 테스트하여 코드와 문서 간의 일관성을 유지할 수 있습니다. 이를 통해 품질을 향상시키고 효과적인 문서화된 테스트를 수행할 수 있습니다.

더 많은 정보는 pytest-doctestplus 공식 문서를 참고하세요.

References