[python] doctest를 사용하여 파이프라인 코드를 테스트하는 방법은?
doctest는 함수 또는 모듈의 docstring을 통해 작성된 예제를 사용하여 테스트를 수행합니다. 즉, 파이프라인 코드의 각 단계를 예시로 작성하여 예상되는 결과와 비교할 수 있습니다.
예를 들어, 다음과 같이 파이프라인 코드를 작성한다고 가정해봅시다.
def preprocess(text):
# 전처리 로직을 구현합니다.
return processed_text
def analyze(text):
# 분석 로직을 구현합니다.
return analysis_result
def visualize(result):
# 시각화 로직을 구현합니다.
return visualization
# 파이프라인 테스트 함수를 작성합니다.
def pipeline_test():
"""
>>> preprocess("Hello World!")
'hello world'
>>> analyze("hello world")
['hello', 'world']
>>> visualize(['hello', 'world'])
'hello\nworld'
"""
# 파이프라인 코드를 호출하고 결과를 확인합니다.
processed_text = preprocess("Hello World!")
analysis_result = analyze(processed_text)
visualization = visualize(analysis_result)
print(visualization)
# 테스트를 수행합니다.
if __name__ == "__main__":
import doctest
doctest.testmod()
위의 예시에서는 preprocess
, analyze
, visualize
함수의 동작을 확인하기 위해 각각의 단계를 테스트하고 있습니다. doctest를 사용하여 함수의 예제와 기대값을 docstring에 작성하고 doctest.testmod()
함수를 호출하여 테스트를 수행합니다.
파이프라인 코드가 복잡해지면 테스트 케이스도 추가해야 할 수 있습니다. 이때에는 docstring에 예제를 작성하고 기대되는 결과를 추가하면 됩니다.
doctest는 예제와 비교 결과가 일치하는지를 확인하므로 코드 변경 시마다 테스트 케이스를 업데이트해야 할 필요가 없습니다. 따라서 파이프라인 코드를 개발하고 유지보수할 때 편리하게 사용할 수 있습니다.
더 자세한 내용은 파이썬 공식 문서를 참고하시기 바랍니다.